Estoy intentando configurar php y mod_spdy en Apache 2.4, Debian jessie, x64. he seguidoesta guíay configuré Apache siguiendoesta otra guiae instalé estos paquetes:
libapache2-mod-fcgid
php-cgi
php5-fpm
Ahora tengo problemas con las aplicaciones php: cuando intento abrirlas me sale un 403 Prohibido. Aquí está mi /etc/apache2/conf-enabled/fcgid.conf
<Location />
AddHandler fcgid-script .php
Options +ExecCGI
FcgidWrapper /usr/bin/php-cgi .php
</Location>
Y el error me sale en /var/log/apache2/error.log
AH01630: client denied by server configuration: /usr/lib/cgi-bin/php5
He intentado agregar
Order allow,deny
Allow from all
al en la aplicación PHP VirtualHost, pero el resultado es el mismo. ¿Por qué recibo el 403?
Respuesta1
El mensaje de error 403 es engañoso, pero correcto. Mirando /etc/apache2/conf-enabled/serve-cgi-bin.conf tengo:
<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>
Siguiendo el flujo del código, "Requerir todo concedido" en /usr/lib/cgi-bin se ejecuta solo si mod_cgi y/o mod_cgid están habilitados. En mi caso, ambos estaban deshabilitados (porque están deshabilitados de forma predeterminada en Debian).
# a2enmod cgi ; a2enmod cgid ; service apache2 restart
resuelve el problema.
Respuesta2
El 403 suele deberse a que falta una línea de ScriptAlias. por ejemplo, si la Ubicación es "/" y la raíz del servidor es /var/my-www/, colóquelo inmediatamente antes de la directiva:
ScriptAlias / /var/my-www/
<Location />
...
...