Apache 不使用新文件根目錄

Apache 不使用新文件根目錄

我已經在 Centos 7 上安裝了 apache Web 伺服器,並且已啟用mod_ssl它。但是,當我嘗試將其預設文件根更改為新根時(例如/home/user/public_html),它會向我顯示一個403 Forbidden頁面。我想也許是因為目錄的權限,但我不知道如何處理它以及如何更改它。我現在該怎麼做?非常感謝任何幫助。

答案1

不要將文檔根目錄放在使用者主目錄中。由於多種原因,這是不安全的,且 SELinux 預設不允許 Web 伺服器讀取使用者主目錄中的檔案。使用 SELinux 識別的目錄,例如/srv/www,在該目錄下為每個虛擬主機建立目錄,並為必須存取內容的使用者授予適當的權限和 ACL。

如果您由於某種原因無法遵循良好實踐並且必須讓 Web 伺服器從使用者主目錄讀取內容,您可以設定httpd_read_user_content布林值。

setsebool -P httpd_read_user_content 1

但請注意,再次出於安全考慮,SELinux 永遠不會允許寫入使用者主目錄,因此期望寫入內容(例如使用者上傳)的 Web 應用程式功能將無法運作。在另一個目錄下,例如/srv/www必須可寫入的目錄,可以指定類型httpd_sys_rw_content_t

相關內容