如何让 apache 给出 403 错误的配置文件路径和行号

如何让 apache 给出 403 错误的配置文件路径和行号

我在 Debian 不稳定版上运行 Apache 2.4.7。当我尝试运行超音速使用 mod_wsgi 模块。我将 wsgi 和 authz_core 的 LogLevel 调高到trace6,但仍然没有收到任何有用的消息。请注意,我使用的是mod_access_compat,因此 Order ... Allow 组合有效。

我想具体查看哪个配置文件(例如某个地方的某个 .htaccess 文件,或者标准 apache 或 debian 配置文件之一)以及哪一行包含生成 403 错误的规则。

我手动遍历了这棵树,在每个级别检查运行 Web 服务器的用户是否具有文件的读取权限,以及目录的读取和执行权限。

我的/etc/apache2/apache.conf文件包含以下行:

LogLevel info authz_core:trace6 wsgi:trace6

supysonic 的 apache 配置文件/etc/apache2/conf-enabled/supysonic.conf是:

WSGIScriptAlias /supysonic /mnt/large_vol/home/bminton/public_html/programs/supysonic
<Directory /mnt/large_vol/home/bminton/public_html/programs/supysonic>
    WSGIApplicationGroup %{GLOBAL}
    Order deny,allow
    Allow from all
</Directory>

错误日志包含以下几行:

[Wed Jan 15 08:40:34.106119 2014] [authz_core:debug] [pid 13558] mod_authz_core.c(802): [client 127.0.0.1:58438] AH01626: authorization result of Require all denied: denied [Wed Jan 15 08:40:34.106197 2014] [authz_core:debug] [pid 13558] mod_authz_core.c(802): [client 127.0.0.1:58438] AH01626: authorization result of <RequireAny>: denied [Wed Jan 15 08:40:34.106208 2014] [authz_core:error] [pid 13558] [client 127.0.0.1:58438] AH01630: client denied by server configuration: /mnt/large_vol/home/bminton/public_html/programs/supysonic [Wed Jan 15 08:40:34.113336 2014] [:info] [pid 13571] mod_wsgi (pid=13571): Initializing Python. [Wed Jan 15 08:40:34.154407 2014] [:info] [pid 13571] mod_wsgi (pid=13571): Attach interpreter ''.

答案1

403 错误与用户授权有关,实际上与您的应用程序代码无关。

你说你使用的是 apache 2.4 版本,那么这肯定是错误的:

Order deny,allow
Allow from all

现在应该这样写(仅 1 行):

Require all granted

答案2

我遇到了类似的问题,这个问题困扰了我很长时间。以下是最终对我有用的方法:

WSGIScriptAlias /supysonic /var/www/supysonic/supysonic.wsgi
WSGIDaemonProcess /supysonic user=#1000 group=#1000
WSGIProcessGroup /supysonic
<Directory /var/www/supysonic>
   WSGIApplicationGroup %{GLOBAL}
   WSGIPassAuthorization On
   Require all granted
</Directory>`

相关内容