Назад | Перейти на главную страницу

Почему мое перенесенное решение apache2-fastcgi-django дает мне «AH01630: клиент отклонен конфигурацией сервера»?

У меня есть решение для запуска сайта Django (1.3.1 на Python 2.7), который работает на старом сервере. Я пытаюсь перенести это на новый сервер, но при попытке доступа к странице обнаруживаю следующую ошибку (в которой указано, что это запрещено в браузере):

[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). Я пытался следовать руководство по обновлению но они, похоже, не помогли.

Я проверил и дважды проверил разрешения между двумя машинами, но я просто не вижу, что я пропустил. Что я делаю не так?

Оказывается, мне пришлось установить оператор Require для каталога, который также использовал ловушка fastcgi:

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