Ack! Atualizando Debian de Lenny para Squeeze matou PHP!

1

Hoje eu fiz um dist-upgrade do Lenny para o Squeeze (eu fiz isso antes em muitos outros servidores sem muita dificuldade), e quase tudo parece funcionar, exceto pelo PHP. Sites que usam PHP apenas mostram os arquivos PHP em vez do servidor gerá-los. Tanto quanto eu posso dizer, o servidor Apache está realmente funcionando corretamente com o PHP de acordo com o log de erros, mas está apenas agindo como se não estivesse rodando.

Uma coisa estranha que eu peguei na solução de problemas é que /etc/asterisk/mods-enabled/php5.conf parece se referir a um arquivo que não existe; ou seja, mod_php.c. Isso não soa como um módulo compilado para mim, e ao mesmo tempo, mod_php.c e mod_php.so não existem no sistema, apesar de como o sistema dpkg do Debian parece pensar.

Aqui está o conteúdo do php5.conf:

<IfModule mod_php5.c>
    <FilesMatch "\.ph(p3?|tml)$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
         SetHandler application/x-httpd-php-source
    </FilesMatch>
    # To re-enable php in user directories comment the following lines
    # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
    # prevents .htaccess files from disabling it.
    <IfModule mod_userdir.c>
        <Directory /home/*/public_html>
            php_admin_value engine Off
        </Directory>
    </IfModule>
</IfModule>

Eu recebo as seguintes mensagens de erro ao reiniciar o apache:

[Tue Apr 26 15:46:42 2011] [notice] caught SIGTERM, shutting down
[Tue Apr 26 15:46:43 2011] [warn] No JkLogFile defined in httpd.conf. Using default /var/log/apache2/mod_jk.log
[Tue Apr 26 15:46:43 2011] [warn] No JkShmFile defined in httpd.conf. Using default /var/log/apache2/jk-runtime-status
[Tue Apr 26 15:46:43 2011] [notice] suEXEC mechanism enabled (wrapper: /usr/lib/apache2/suexec)
[Tue Apr 26 15:46:44 2011] [notice] Digest: generating secret for digest authentication ...
[Tue Apr 26 15:46:44 2011] [notice] Digest: done
[Tue Apr 26 15:46:44 2011] [warn] No JkLogFile defined in httpd.conf. Using default /var/log/apache2/mod_jk.log
[Tue Apr 26 15:46:44 2011] [warn] No JkShmFile defined in httpd.conf. Using default /var/log/apache2/jk-runtime-status
[Tue Apr 26 15:46:44 2011] [error] python_init: Python version mismatch, expected '2.6.5+', found '2.6.6'.
[Tue Apr 26 15:46:44 2011] [error] python_init: Python executable found '/usr/bin/python'.
[Tue Apr 26 15:46:44 2011] [error] python_init: Python path being used '/usr/lib/python2.6/:/usr/lib/python2.6/plat-linux2:/usr/lib/python2.6/lib-tk:/usr/lib/python2.6/lib-old:/usr/lib/python2.6/lib-dynload'.
[Tue Apr 26 15:46:44 2011] [notice] mod_python: Creating 8 session mutexes based on 110 max processes and 0 max threads.
[Tue Apr 26 15:46:44 2011] [notice] mod_python: using mutex_directory /tmp
[Tue Apr 26 15:46:44 2011] [notice] Apache/2.2.16 (Debian) DAV/2 SVN/1.6.12 mod_fcgid/2.3.6 mod_jk/1.2.26 PHP/5.3.3-7+squeeze1 with Suhosin-Patch mod_python/3.3.1 Python/2.6.6 mod_ssl/2.2.16 OpenSSL/0.9.8o mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
    
por Ernie 27.04.2011 / 00:57

2 respostas

1

Parece que o problema é com o mod_jk.

O pacote estável para squeeze é libapache-mod-jk (1: 1.2.30-1squeeze1) que foi atualizado do pacote de lenny libapache-mod-jk (1: 1.2.26-2 + lenny1)

Existe um relatório de bug do pacote Debian confirmado que, após a atualização, o mod_jk não conectar-se a tomcats, mas é suposto ser corrigido na versão mais recente.

Tente atualizá-lo com o apt-get e veja se ele fornece a nova versão, se não o apt-get, instale o libapache-mod-jk e escolha manter seus arquivos de configuração existentes, se ele solicitar. (Provavelmente deve fazer backup de qualquer arquivo de configuração antes de fazer as atualizações.

Você também reinicializou o servidor depois da atualização? Quando eu fui do lenny para apertar o kernel não atualizei até que eu reiniciei.

    
por 27.04.2011 / 04:10
3

Você substituiu algum arquivo de configuração do Apache durante o dist-upgrade? Verifique o / etc / apache2 e todos os subdiretórios para arquivos * -old. Se eles existirem, verifique as diferenças - talvez você tenha ativado o PHP de maneira não padrão ou modificado o apache2.cfg, por exemplo, e as alterações relevantes foram sobrescritas. Verifique se o mod_php está presente em / etc / apache2 / mods-enabled e ative-o usando a2enmod, se não.

Você usa o mod_python? O log de erros que você postou mostra erros de python.

    
por 27.04.2011 / 01:17