Httpd
很奇怪的AH00035錯誤
我在這裡是因為我的伺服器上有一個非常奇怪的行為,並且我曾經調查 AH00035 錯誤幾個小時。
在我的伺服器上,如果我創建一個簡單的 php 文件index.php
<? php echo "Hello world" ?>
我可以到達它。
當我使用 sftp 上傳的完全相同的文件時,我收到 AH00035 錯誤。但是當我複製文件並應用與以前完全相同的權限和使用者組時,我不再有錯誤了。
這是場景:
1 - 使用 sftp 上傳文件
2 - 檢查文件的權限
-rw-r--r--. 1 SFTP_JOR_USER sftp_users index.php
3 - 將文件移動到我的 html 目錄
4 - 試圖訪問文件:AH00035
5 - 更改使用者
chown apache:apache index.php
6 - 試圖訪問文件:AH00035
這是奇怪的部分
7 - 複製文件
cp index.php index2.php
8 - 檢查權限
-rw-r--r--. 1 root root index2.php
9 - 訪問 index2.php : Hello world (NICE !)
10 - 嘗試在根目錄下創建 index.php
chown root:root index.php
11 - 試圖訪問 index.php:AH00035
12 - 更改 index.php 和 index2.php 使用者
chown apache:apache index.php chown apache:apache index2.php
所以,最後,我有完全相同的文件,具有完全相同的內容和完全相同的權限。
一個導致 AH00035 錯誤。另一個是可以訪問的。
我真的不明白這裡發生了什麼。是因為通過 sftp 上傳它們嗎???
我真的不想複製我的文件,然後重命名它們,然後每次我對我的開發進行更改時更改使用者組。
提前致謝
您將原始文件從主目錄移動到 web 目錄而不是複制它,因此文件的 SELinux 上下文是錯誤的。移動文件時,預設情況下會保留其 SELinux 上下文。
您可以通過以下任何方式解決此問題:
- 將文件從您的主目錄複製到 web 目錄(然後根據需要刪除原始文件)。新文件將具有不同的 SELinux 上下文。
- 移動文件
mv -Z
以將 SELinux 上下文重置為目標的預設值。- 使用 SFTP 將文件直接上傳到其目標目錄,而不是您的主目錄。