403 Erro proibido com fcgid e PHP

403 Erro proibido com fcgid e PHP

Estou tentando configurar php e mod_spdy no Apache 2.4, Debian jessie, x64. eu seguieste guiae configurei o Apache seguindoeste outro guiae instalei estes pacotes:

libapache2-mod-fcgid
php-cgi
php5-fpm

Agora tenho problemas com aplicativos php: quando tento abri-los recebo um 403 Forbidden. Aqui está meu /etc/apache2/conf-enabled/fcgid.conf

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

E o erro que recebo em /var/log/apache2/error.log

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

Eu tentei adicionar

Order allow,deny
Allow from all

para o aplicativo PHP VirtualHost, mas o resultado é o mesmo. Por que estou recebendo o 403?

Responder1

A mensagem de erro 403 é enganosa, mas correta. Olhando para /etc/apache2/conf-enabled/serve-cgi-bin.conf eu tenho:

<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>

Seguindo o fluxo de código, o "Exigir todos concedidos" em /usr/lib/cgi-bin é executado somente se mod_cgi e/ou mod_cgid estiverem habilitados. No meu caso, ambos foram desabilitados (porque estão desabilitados por padrão no Debian).

# a2enmod cgi ; a2enmod cgid ; service apache2 restart

resolveu o problema.

Responder2

O 403 geralmente ocorre devido à falta de uma linha ScriptAlias. por exemplo, se o local for "/" e a raiz do servidor for /var/my-www/, coloque-o imediatamente antes da diretiva:

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

informação relacionada