Apache2 + mod_fcgid + php dejó de funcionar después de la actualización de Debian squeeze a wheezy

1

He actualizado mi servidor de Debian squeeze a Debian wheezy. En este servidor hay varios vhost de apache2 que ejecutan php a través de mod_fcgid (también estoy usando mod_suexec pero este no debería ser el problema). Después de la actualización, todos mis sitios php ya no funcionan, apache2 entrega el código fuente de php si solicito un sitio que ejecute php. Todos mis archivos de registro

  • apache2 / error.log
  • apache2 / access.log
  • apache2 / suexec.log
  • y los registros de error / acceso vhosts

No se le ocurrió ningún error, ni siquiera advertencias. Todos los módulos necesarios están instalados y cargados. Busqué una posible solución por horas ahora, sin ningún esfuerzo. Aquí hay un archivo vhost de muestra (los datos "sensibles" se reemplazan, usuario / grupo y dominio):

<VirtualHost *:80>
    ServerName example.com
    SuexecUserGroup john-doe john-doe
    AddHandler fcgid-script .php
    DocumentRoot "/var/www/example.com/data"
    DirectoryIndex index.php index.html

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory "/var/www/example.com/data">
        Options Indexes MultiViews FollowSymLinks +ExecCGI
        FCGIWrapper /var/www/example.com/php-fcgi/php-fcgi-starter .php
        Order allow,deny
        allow from all
        AllowOverride All
    </Directory>
    ErrorLog /var/www/example.com/logs/error.log
    LogLevel warn
    CustomLog /var/www/example.com/logs/access.log combined
    ServerSignature Off
</VirtualHost>

¿Alguna idea a alguien? Hice esta pregunta en serverfault.com También, espero que esto esté bien.

morten.c
fuente

Respuestas:

1

Ahora me encontré con la solución por mí mismo. El problema se debe a una actualización de mod_fcgid que cambió las directivas utilizadas en las configuraciones de vhost. Se pudieron ver los cambios. aquí (Esto es lo que encontré).

La directiva

FCGIWrapper /var/www/example.com/php-fcgi/php-fcgi-starter .php

tiene que ser cambiado a

FcgidWrapper /var/www/example.com/php-fcgi/php-fcgi-starter .php

La documentación dice

"Todas las directivas han sido renombradas para usar un prefijo común" Fcgid ". Los guiones bajos en los nombres de directivas se han eliminado a favor de CamelCase. Los antiguos nombres de directivas seguirán funcionando pero están en desuso. Para corregir su configuración, puede usar el script sed construir / fixconf.sed ".

Pero parece que los antiguos nombres de directivas ya no funcionan por ahora. Los cambios han hecho el truco para mí, tal vez esto ayude a alguien más.

morten.c
fuente