Linux
httpd 未按預期讀取 conf/httpd.conf 中的文件根目錄
我的 CentOS7 伺服器上有一個 Laravel 項目,它位於文件夾“/var/www/html/myProject”上。
我已經在“DocumentRoot”和目錄配置中將/etc/httpd/conf/httpd.conf中的文件根目錄更改為“/var/www/html/myProject/public”,所以當我在瀏覽器中輸入IP時它將自動顯示項目。
當我嘗試這樣做並通過瀏覽器訪問我的 IP 時,我收到了以下消息:
Forbidden 您無權訪問此伺服器上的 /form。伺服器無法讀取 htaccess 文件,拒絕訪問是安全的
經過進一步檢查,我發現在我的 /var/log/httpd/error_log 中,每次訪問嘗試後都會出現以下錯誤:
[Thu May 10 19:39:33.683522 2018] [core:crit] [pid 1994] (13)Permission denied: [client 79.182.62.1:51091] AH00529: /var/www/html/myProject/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/var/www/html/myProject/' is executable
這對我來說很奇怪,因為路徑應該是 /var/www/html/myProject/public,但是缺少“public”。
我已經重新啟動了我的 apache 幾次,並將 DocumentRoot 路徑更改為一個虛構的路徑,只是為了檢查它是否更新了。
它可能是 .htaccess 文件中的內容嗎?雖然我沒有更改文件,但我在 Laravel 創建它時留下了它。
這可能是因為公共文件的權限。現在只需授予完全權限,看看它做了什麼
chmod 0777 /var/www/html/myProject/public
或者
chmod -R 0777 /var/www/html/myProject
如果頁面仍然無法訪問,請檢查主機上的 SElinux 狀態。
鍵入
sestatus
並檢查目前模式。它應該被禁用或處於許可模式。如果它處於強制模式,則httpd
網頁可能無法按預期顯示內容。要將 SElinux 設置為許可模式,請鍵入以下命令:
setenforce 0