Error 403 prohibido con fcgid y PHP

Error 403 prohibido con fcgid y PHP

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

información relacionada