Por que o Apache está mostrando o código PHP em vez de executá-lo?

Publicado 17 de outubro de 2024

Problema: Apache exibindo código PHP

Às vezes, quando o Apache serve arquivos PHP, ele mostra o código PHP bruto em vez de executá-lo. Esse problema impede que sites e aplicativos baseados em PHP funcionem corretamente. Vários problemas de configuração ou partes ausentes na configuração do servidor podem causar esse problema.

Possíveis causas para o Apache não executar PHP

Problemas de configuração do Apache

O Apache pode não executar código PHP devido a problemas de configuração. Um módulo PHP ausente pode impedir que o Apache processe arquivos PHP. Se o módulo PHP estiver presente, mas não for carregado corretamente, o Apache não reconhecerá o código PHP. Associações de arquivos incorretas também podem fazer com que o Apache trate arquivos PHP como texto simples em vez de scripts.

Dica: Verifique a configuração do Apache

Para verificar se o Apache está configurado corretamente para lidar com PHP, procure a seguinte linha no seu arquivo de configuração do Apache (geralmente httpd.conf ou apache2.conf):

LoadModule php_module modules/libphp.so

Certifique-se de que esta linha não esteja comentada e que o caminho para o módulo PHP esteja correto.

Problemas de instalação do PHP

Problemas com a instalação do PHP podem levar a problemas de execução. Uma configuração incompleta do PHP pode resultar em componentes ausentes necessários para o funcionamento adequado. Usar uma versão do PHP que não corresponda à sua instalação do Apache pode causar conflitos. Um arquivo php.ini mal configurado pode impedir que o Apache reconheça ou execute o código PHP corretamente.

Soluções para problemas de execução do PHP no Apache

Verificando o módulo PHP do Apache

Para corrigir problemas de execução do PHP no Apache, verifique a configuração do Apache para o módulo PHP. Procure uma linha que carregue o módulo PHP, como LoadModule php_module modules/libphp.so. Certifique-se de que esta linha não esteja comentada e que o caminho para o módulo esteja correto. Se o módulo estiver ausente, pode ser necessário instalá-lo ou atualizar sua configuração do Apache.

Verifique se o caminho do módulo está correto. O caminho deve apontar para o local de instalação do PHP. Se você não tiver certeza sobre o caminho correto, consulte a documentação de instalação do PHP ou use o comando whereis php em sistemas baseados em Unix para encontrar os arquivos PHP.

Para confirmar a ativação do módulo, reinicie o Apache e verifique os logs de erro em busca de mensagens relacionadas ao carregamento do módulo PHP. Se não houver erros, o módulo deve estar ativo.

Dica: Verifique o módulo PHP com phpinfo()

Crie um arquivo PHP com a função phpinfo() para verificar se o PHP está funcionando corretamente:

<?php
phpinfo();
?>

Salve isso como info.php no diretório raiz da web e acesse-o através do seu navegador. Se você vir a página de configuração do PHP, o módulo está funcionando.

Configurando o Apache para lidar com arquivos PHP

Adicione o tipo MIME correto para PHP incluindo esta linha na sua configuração do Apache:

AddType application/x-httpd-php .php

Isso diz ao Apache para tratar arquivos com a extensão .php como scripts PHP.

Configure as extensões de arquivo adicionando quaisquer outras extensões que você deseja que o Apache trate como arquivos PHP. Por exemplo:

AddType application/x-httpd-php .php .phtml

Depois de fazer essas alterações, reinicie o Apache para aplicar a nova configuração. Na maioria dos sistemas, você pode fazer isso com o comando sudo service apache2 restart ou sudo systemctl restart apache2.

Solucionando problemas de instalação do PHP

Confirme se o PHP está instalado executando php -v na linha de comando. Este comando mostra a versão do PHP e detalhes da instalação. Se não funcionar, o PHP pode não estar instalado ou não estar no PATH do seu sistema.

Verifique a compatibilidade da versão do PHP com sua instalação do Apache. Certifique-se de estar usando uma versão do PHP que funcione com sua versão do Apache. Verifique a documentação do Apache e do PHP para encontrar versões compatíveis.

Revise suas configurações do php.ini para garantir que o PHP esteja configurado corretamente. Procure configurações como display_errors e error_reporting para ajudar a diagnosticar quaisquer problemas relacionados ao PHP. Você pode encontrar a localização do seu arquivo php.ini executando php --ini na linha de comando.