我在httpd.conf中启用了以下内容:
ExtendedStatus On
LoadModule status_module modules / mod_status.so
并且:
NameVirtualHost *: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而不是主机名,这是我看起来的样子(因为服务器也启用了IPv6,因此有:: 1)
<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”,所以你可以尝试在http.conf中将位置/服务器状态置于VirtualHost之外
以防万一这有助于:
在较新版本的Apache中, conf / extra / httpd-info.conf中有一个默认的服务器状态configuration设置,它将覆盖httpd.conf中的所有服务器状态设置
conf / extra / httpd-info.conf中的默认configuration设置为“Allow from .example.com”,并将消除您在httpd.conf中执行的所有奇妙的服务器状态更改
所以,如果你面临许可问题,确保你正在编辑正确的文件!
你可能想看看你的/ etc / hosts
127.0.0.1 localhost
在我的情况下,我检查了/ etc / hosts,发现我有两个主机名为localhost列出:
127.0.0.1 localhost.localdomain localhost
在Apache和parsing器之间似乎有些奇怪的行为。 如果第一个127.0.0.1条目是localhost.localdomain,你应该在apacheconfiguration中使用它:
Allow from localhost.localdomain
那么你可以得到正确的答案
curl localhost/server-status curl localhost.localdomain/server-status curl 127.0.0.1/server-status