PHP não funciona no Apache2 após a atualização do sistema

14

Recentemente atualizei meu sistema do Karmic para o Lucid. Isso envolveu o Apache e PHP sendo atualizado, eu acredito.

Agora, meu servidor não pode manipular arquivos PHP, qualquer navegação para eles está acionando o download em vez de analisar.

O módulo PHP ainda está carregado no Apache mods-enabled e eu tenho AddType application/x-httpd-php .php no meu httpd.conf.

Não há mensagens significativas no acesso do Apache ou nos logs de erros, por isso estou perplexo.

Qualquer ajuda seria apreciada. Obrigado.

    
por Jivings 30.08.2011 / 13:53

3 respostas

17

/var/log/apache2/error.log deve mostrar uma linha como a abaixo se o PHP foi carregado com sucesso:

  

[terça-feira, 30 de agosto 12:53:36 2011] [aviso] Apache / 2.2.14 (Ubuntu) PHP / 5.3.2-1ubuntu4.9 com o Suhosin-Patch configurado - retomando as operações normais

Preste atenção na data, se é algo de 2009, você configurou algo errado.

AddType é inútil, você precisa usar:

<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>

Veja também as instruções de instalação no php.net para o Apache 2.x .

Você não deve precisar adicioná-lo manualmente, o pacote libapache2-mod-php5 installs /etc/apache2/mods-available/php5.conf contendo:

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

Como é um conffile, é possível que não seja instalado com a atualização. Para corrigir isso purgar e, em seguida, instalá-lo novamente:

sudo apt-get purge libapache2-mod-php5
sudo apt-get install libapache2-mod-php5

Para ativar o PHP, você precisa executar:

sudo a2enmod php5

Reinicie o servidor da web depois:

sudo /etc/init.d/apache2 restart

Outras coisas a fazer:

  • verifique configurações conflitantes em /etc/apache2 .
  • você criou o Apache a partir do código-fonte?
  • Execute sudo apache2ctl configtest para verificar sua configuração de erros de sintaxe
  • Abra o link para verificar a configuração carregada e os módulos. O módulo status deve ser carregado para isso. Se você estiver executando um servidor remoto, precisará se adicionar à lista Allow from em /etc/apache2/mods-enabled/status.conf e reiniciar o servidor posteriormente
por Lekensteyn 30.08.2011 / 14:14
3

Depois que nada mais funcionou e o Apache estava ficando muito confuso, finalmente acabei de limpar todos os pacotes do Apache e os reinstalei.

Parece estar funcionando bem agora, quem sabe o que estava errado ...

EDITAR

Descobri o que estava errado quando estava configurando minhas configurações do Apache novamente. [Esta entrada do blog] [1] explica isso.

Acontece que, embora o módulo userdir não esteja ativamente em uso, o resto dos arquivos de sites residem em minha pasta ~ / public_html, e o php estava sendo desabilitado para tudo que está lá.

Eu acho que isso deve ter sido uma adição recente ao módulo php que não estava presente nas minhas configurações do Karmic.

    
por Jivings 31.08.2011 / 10:55
1

o arquivo php5.conf em /etc/apache2/mods-enabled tem algumas linhas na parte inferior que impedem que o php seja executado dentro de um diretório de usuários, portanto, dependendo da sua configuração, esse também poderia ser seu problema. Você pode apenas comentar essas linhas e apache2 recarregar

    
por Jeff 17.11.2014 / 01:36