为什么我迁移后的 apache2-fastcgi-django 解决方案出现“AH01630:服务器配置拒绝客户端”?

为什么我迁移后的 apache2-fastcgi-django 解决方案出现“AH01630:服务器配置拒绝客户端”?

我有一个解决方案,可以在旧服务器上运行 Django(Python 2.7 上的 1.3.1)网站。我试图将其迁移到新服务器,但当我尝试访问该页面时遇到以下错误(提示在浏览器中被禁止):

[Mon Sep 18 06:48:32.394835 2017] [authz_core:error] [pid 24239:tid 140298255943424] [client 86.133.221.44:58348] AH01630: client denied by server configuration: /var/django/sarahcage/fastcgihook.fcgi

我的 apache 配置包括这一行:

FastCGIExternalServer /var/django/sarahcage/fastcgihook.fcgi -socket /var/django/sarahcage.sock

我的 apache 站点配置如下:

<VirtualHost 46.101.39.249:80>
<Directory "/var/www/sarahcage">
    AllowOverride All
    Require all granted
</Directory>
ServerName newserver.sarahcage.co.uk
DocumentRoot /var/www/sarahcage
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?$ /var/django/sarahcage/fastcgihook.fcgi/$1 [QSA,L]

# Set the whole site to use DJango
<LocationMatch "^/?$">
        SetHandler fastcgi-script
</LocationMatch>

</VirtualHost>

我像这样运行 django deamon:

 /var/django/sarahcage/manage.py runfcgi socket=/var/django/sarahcage.sock pidfile=/var/run/sarahcage_fcgi.pid

两台服务器之间有一个显著的区别:新服务器正在运行,Apache/2.4.18 (Ubuntu)而旧服务器正在运行Apache/2.2.22 (Ubuntu)。我试图跟踪升级指南但他们似乎没有帮助。

我已经反复检查了两台机器之间的权限,但就是找不到我遗漏的地方。我可能做错了什么?

答案1

事实证明,我必须为 fastcgi 钩子使用的目录设置“Require”语句:

<Directory "/var/django">
    AllowOverride all
    Require all granted
</Directory>

相关内容