403: Forbidden
因此,我的一个 apache2.4 虚拟主机上出现了错误。
有趣的是,有/var/log/apache2/error.log
报道称:
authz_core:error] [pid 4878:tid 140394394269440] [client 10.214.154.19:33009] AH01630: client denied by server configuration
并且......虽然我确实有其他使用 authz 的虚拟主机(主要用于 subversion 托管),但我禁用了除我遇到问题的那个之外的所有其他主机,重新启动了 Apache,没有明显的区别。
这是我的 Apache2 站点可用文件,即使我已禁用所有其他主机配置,并将我的配置精简到最低限度,但仍然拒绝访问。
<VirtualHost *:443>
WSGIScriptAlias /example /data/example/example.wsgi
<Directory /data/example>
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
Require all granted
</Directory>
LogLevel info
SSLEngine on
SSLCertificateFile /etc/ssl/certs/example.pem
SSLCertificateKeyFile /etc/ssl/private/example.key
</VirtualHost>
此外,为了验证它不是我的 wsgi 脚本,我用以下脚本替换了该脚本:
def application(environ, start_response):
start_response('200 OK',[('Content-type','text/html')])
return ['<html><body>Hello World!</body></html>']
这并没有什么明显的区别。
有任何想法吗?
答案1
正如所指出的Apache“服务器配置拒绝客户端”,尽管允许访问目录(vhost 配置)问题在于 Apache 2.4 改变了授权配置的方式。authz_core 模块实际上是内置的,这似乎是一个混乱的根源。
如果您只是删除 Order 和 Allow 行,事情就会按预期进行。请参阅http://httpd.apache.org/docs/2.4/upgrading.html了解详情。