我們發現 CentOS 6 VPS 上的所有 https URL 在多個虛擬主機上都會傳回 403。我應該尋找某個配置設定來檢查發生了什麼?或是幫助調試的日誌?
答案1
您的日誌已輸入/var/log/httpd
(您需要成為“root”才能查看它們)。你會在那裡找到access_log
和。error_log
您是否設定/檢查了文件的權限?小組apache
至少應該能夠閱讀它們。例如,如果我(用戶gareth
)有一個網站/var/www/html
:-
$ls -l /var/www/html
-rwxr-----. gareth apache 30 Jun 23 13:35 test.html
如您所見,我有權rw
存取該文件,並且 apache 服務也有權r
存取。也:-
$ls -ld /var/www/html
drwx--x---. gareth apache 4096 Jun 23 13:35 /var/www/html/
包含該網站的目錄必須具有x
該apache
群組的權限,以便apache可以讀取該目錄。同樣,它的父目錄也必須具有x
權限集。還有父母的父母等等。
如果檔案的權限正常,請檢查這SELinux
不是罪魁禍首。跑步:-
`setenforce 0`
然後再試一次。如果現在有效,則問題是由於SELinux
.記得運行:-
`setenforce 1`
重新啟用 SELinux。
答案2
403狀態碼表示客戶端無法存取所要求的資源。這通常表示 URL 引用的檔案和/或目錄不具有允許 HTTP 伺服器存取它的權限。
確認 HTTP 伺服器使用的使用者名稱/群組具有足夠的權限來存取此目錄。此外/var/log/httpd/access_log
,例如,如果 HTTP 伺服器是 Apache,您應該在 中看到有關此內容的資訊。
Apache 的使用者/群組在設定檔/etc/httpd/conf/httpd.conf
.
例子
$ grep -E "^User|^Group" /etc/httpd/conf/httpd.conf
User apache
Group apache
答案3
看起來是 mod-spdy-beta_current_x86_64.rpm 安裝的問題。刪除它並重新啟動伺服器解決了它。