Apache-2.2
使用 Apache 版本 httpd-2.2.3-31 在 Centos 上啟用 /server-status 時出現錯誤消息
我在 httpd.conf 上啟用了以下功能:
擴展狀態開啟
LoadModule status_module modules/mod_status.so
並且:
名稱虛擬主機 *:80
<VirtualHost *:80> ServerName myserver.com ServerAlias myserver.com DocumentRoot /prod/html RewriteEngine on RewriteCond %{HTTP_HOST} .*myserver.com$ RewriteRule /(.*) http://myserver.com/$1 [R,L] **<Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from localhost </Location>** </VirtualHost>
執行時**
lynx http://localhost/server-status
** 收到以下消息: 您無權訪問此伺服器上的 /server-status。我在 /etc/httpd 文件夾中沒有看到與 /server-status 相關的任何內容,這些是我在 /etc/httpd 下的文件夾:
**conf conf.d logs -> ../../var/log/httpd modules -> ../../usr/lib/httpd/modules run -> ../../var/run**
知道為什麼我會收到**“權限被拒絕”**錯誤嗎?我需要安裝另一個包來獲取它嗎?謝謝!!多坦。
嘗試使用 IP 而不是主機名,這就是我的樣子( ::1 在那裡,因為伺服器也啟用了 IPv6)
<Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1 ::1 </Location>
使用
lynx http://localhost/server-status
可能與虛擬主機“myserver.com”不匹配,因此您可以嘗試將位置 /server-status 放在 http.conf 中的 VirtualHost 之外
以防萬一這有助於某人:
在較新版本的 Apache 中,conf/extra/httpd-info.conf中有一個預設的伺服器狀態配置設置,它將覆蓋 httpd.conf中的任何伺服器狀態設置
conf/extra/httpd-info.conf 中的預設配置設置為“允許來自 .example.com”,並且將消除您在 httpd.conf 中所做的所有花哨的伺服器狀態更改
因此,如果您遇到權限問題,請確保您正在編輯正確的文件!