Apache2 + mod_fcgid + php parou de funcionar após a atualização do Debian squeeze para wheezy

1

Eu atualizei meu servidor do Debian squeeze para o Debian wheezy. Neste servidor estão vários vache apache2 que executam php via mod_fcgid (também estou usando mod_suexec mas isso não deve ser o problema). Após a atualização todos os meus sites php não estão mais funcionando, o apache2 entrega o código fonte do php se eu requisitar um site rodando php. Todos os meus arquivos de log

  • apache2 / error.log
  • apache2 / access.log
  • apache2 / suexec.log
  • e os logs de erro / acesso do vhosts

não apresentou erros, nem avisos. Todos os módulos neccesarry são instalados e carregados. Eu procurei por uma solução possível por horas agora, sem nenhum esforço. Aqui está um arquivo vhost de amostra (dados "sensíveis" são substituídos, usuário / grupo e domínio):

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

Alguma ideia é de alguém? Eu fiz essa pergunta em serverfault.com também, espero que esteja tudo bem.

    
por morten.c 13.02.2014 / 02:32

1 resposta

1

Agora eu tropecei na solução sozinho. O problema é causado por uma atualização do mod_fcgid que alterou as diretivas usadas nas configurações do vhost. As alterações podem ser vistas aqui (é sobre isso que me deparei).

A diretiva

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

deve ser alterado para

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

A documentação diz

"All directives have been renamed in order to use a common prefix "Fcgid". Underscores in directive names have been eliminated in favor of CamelCase. The old directive names will still work but are deprecated. To fix your configuration you can use the sed script build/fixconf.sed."

mas parece que os antigos nomes de diretivas não funcionam mais por enquanto. As mudanças fizeram o truque para mim, talvez isso ajude alguém.

    
por 13.02.2014 / 13:31