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