CentOS 伺服器文件權限
我開始學習使用 CentOS 虛擬機進行伺服器管理。我正在嘗試製作一個簡單的網站。
因為 Apache 預設文件在其中,
/var/www
所以很難編寫/製作/更改文件。話雖如此,我想在文件夾中製作首頁/var/www
,所有其他頁面都在文件夾中/home/$USER/Documents/Website
。首頁上的程式碼只是
href
其他頁面的程式碼。當我在機器上執行程式碼時,它可以工作,但是如果我進入首頁(在瀏覽器中輸入 IP)連結不起作用,但首頁仍然存在。點擊連結時出現的錯誤是
404 file not found
.如果我從該錯誤程式碼和伺服器上複製文件位置,然後鍵入
cat {file_location}
它列印文件沒有問題。我已將 Apache 組更改為文件的所有者。我怎樣才能讓 Apache 伺服器在這裡找到文件?我需要編輯
http.conf
嗎?編輯:我將如何做到這一點,以便伺服器可以在名為的文件夾中讀取和寫入
/Website
?編輯 2:我不知道我正在執行哪個版本的 Apache。我使用 CentOS 安裝程序來安裝 Apache。這
/var/www/html/index.html
是我輸入 IP 地址時拉出的網頁,應該如此。這很可能是 SELinux 問題,因為在我使用 GUI 包安裝伺服器後,SELinux 彈出視窗告訴我“安全”問題。我執行了它所說的腳本,我可以編寫/var/www/html
文件夾。現在我想在不同的位置添加文件夾,但我不知道該怎麼做。除了 SELinux 妨礙寫入文件夾之外,如果我沒記錯的話/var/www/html
,我還更改了所有者並執行。chmod 755
如果您只希望 Apache 在 中提供文件
/Website
,請編輯您的 Apache 配置/etc/httpd/conf/httpd.conf
並更改DocumentRoot
為/Website
. 然後重新載入伺服器systemctl reload httpd.service
。您還需要更改 SELinux 文件上下文
/Website
和其中的文件。/var/www
您可能希望使用與(httpd_sys_content_t
或httpd_sys_rw_content_t
)中相同的文件上下文。添加新的文件標籤規則,semanage
然後使用restorecon
它來應用它:semanage fcontext -a -t httpd_sys_rw_content_t "/Website(/.*)?" restorecon -R -v /Website
如果您想將 Apache 配置為在主目錄中提供使用者內容,例如。
http://server/~user
,您可以使用mod_userdir。啟用它/etc/httpd/conf.d/userdir.conf
並重新載入伺服器。啟用
httpd_read_user_content
SELinux 布爾值以允許訪問:semanage boolean -m --on httpd_read_user_content
目錄中的文件
public_html
應該已經配置為正確的httpd_user_content_t
類型。如果沒有,您可以執行restorecon -R -v /home/user/public_html
以應用正確的文件上下文。