Centos

CentOS 伺服器文件權限

  • September 24, 2018

我開始學習使用 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_thttpd_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_contentSELinux 布爾值以允許訪問:

semanage boolean -m --on httpd_read_user_content 

目錄中的文件public_html應該已經配置為正確的httpd_user_content_t類型。如果沒有,您可以執行restorecon -R -v /home/user/public_html以應用正確的文件上下文。

引用自:https://unix.stackexchange.com/questions/470624