Ошибка 403 Forbidden с fcgid и PHP

Ошибка 403 Forbidden с fcgid и PHP

Я пытаюсь настроить php и mod_spdy на Apache 2.4, Debian jessie, x64. Я следовалэто руководствои настроил Apache следующим образомэто другое руководствои установил эти пакеты:

libapache2-mod-fcgid
php-cgi
php5-fpm

У меня теперь проблемы с php-приложениями: когда я пытаюсь их открыть, я получаю 403 Forbidden. Вот мой /etc/apache2/conf-enabled/fcgid.conf

<Location />
  AddHandler fcgid-script .php
  Options +ExecCGI
  FcgidWrapper /usr/bin/php-cgi .php
</Location>

И ошибка, которую я получаю в /var/log/apache2/error.log

AH01630: client denied by server configuration: /usr/lib/cgi-bin/php5

Я пробовал добавлять

Order allow,deny
Allow from all

в приложении PHP VirtualHost, но результат тот же. Почему я получаю 403?

решение1

Сообщение об ошибке 403 вводит в заблуждение, но верно. Глядя на /etc/apache2/conf-enabled/serve-cgi-bin.conf, я вижу:

<IfModule mod_alias.c>
    <IfModule mod_cgi.c>
        Define ENABLE_USR_LIB_CGI_BIN
    </IfModule>

    <IfModule mod_cgid.c>
        Define ENABLE_USR_LIB_CGI_BIN
    </IfModule>

    <IfDefine ENABLE_USR_LIB_CGI_BIN>
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Require all granted
        </Directory>
    </IfDefine>
</IfModule>

Следуя потоку кода, "Require all given" в /usr/lib/cgi-bin выполняется только если включены mod_cgi и/или mod_cgid. В моем случае они оба были отключены (потому что они отключены по умолчанию в Debian).

# a2enmod cgi ; a2enmod cgid ; service apache2 restart

решил проблему.

решение2

Ошибка 403 часто возникает из-за отсутствия строки ScriptAlias. Например, если Location — «/», а корневой каталог сервера — /var/my-www/, поместите его непосредственно перед директивой:

ScriptAlias  /  /var/my-www/
<Location />
 ...
 ...

Связанный контент