¿Por qué Apache está mostrando el código PHP en lugar de ejecutarlo?

Publicado 17 de octubre de 2024

Problema: Apache muestra el código PHP

Cuando Apache sirve archivos PHP, a veces muestra el código PHP sin procesar en lugar de ejecutarlo. Este problema impide que los sitios web y aplicaciones basados en PHP funcionen correctamente. Varios problemas de configuración o falta de componentes en la configuración del servidor pueden causar este problema.

Posibles causas por las que Apache no ejecuta PHP

Problemas de configuración de Apache

Apache puede no ejecutar el código PHP debido a problemas de configuración. La falta del módulo PHP puede impedir que Apache procese los archivos PHP. Si el módulo PHP está presente pero no se carga correctamente, Apache no reconocerá el código PHP. Las asociaciones de archivos incorrectas también pueden hacer que Apache trate los archivos PHP como texto plano en lugar de scripts.

Consejo: Verificar la configuración de Apache

Para verificar si Apache está configurado correctamente para manejar PHP, busca la siguiente línea en tu archivo de configuración de Apache (generalmente httpd.conf o apache2.conf):

LoadModule php_module modules/libphp.so

Asegúrate de que esta línea no esté comentada y que la ruta al módulo PHP sea correcta.

Problemas de instalación de PHP

Los problemas con la instalación de PHP pueden llevar a problemas de ejecución. Una configuración incompleta de PHP puede resultar en componentes faltantes necesarios para su correcto funcionamiento. Usar una versión de PHP que no coincida con tu instalación de Apache puede causar conflictos. Un archivo php.ini mal configurado puede impedir que Apache reconozca o ejecute el código PHP correctamente.

Soluciones para problemas de ejecución de PHP en Apache

Verificar el módulo PHP de Apache

Para solucionar problemas de ejecución de PHP en Apache, verifica la configuración de Apache para el módulo PHP. Busca una línea que cargue el módulo PHP, como LoadModule php_module modules/libphp.so. Asegúrate de que esta línea no esté comentada y que la ruta al módulo sea correcta. Si falta el módulo, es posible que necesites instalarlo o actualizar tu configuración de Apache.

Verifica que la ruta del módulo sea correcta. La ruta debe apuntar a la ubicación de tu instalación de PHP. Si no estás seguro de la ruta correcta, consulta la documentación de instalación de PHP o usa el comando whereis php en sistemas basados en Unix para encontrar los archivos de PHP.

Para confirmar la activación del módulo, reinicia Apache y revisa los registros de errores en busca de mensajes relacionados con la carga del módulo PHP. Si no hay errores, el módulo debería estar activo.

Consejo: Verificar el módulo PHP con phpinfo()

Crea un archivo PHP con la función phpinfo() para comprobar si PHP está funcionando correctamente:

<?php
phpinfo();
?>

Guarda esto como info.php en el directorio raíz de tu servidor web y accede a él a través de tu navegador. Si ves la página de configuración de PHP, el módulo está funcionando.

Configurar Apache para manejar archivos PHP

Agrega el tipo MIME correcto para PHP incluyendo esta línea en tu configuración de Apache:

AddType application/x-httpd-php .php

Esto le dice a Apache que trate los archivos con la extensión .php como scripts PHP.

Configura las extensiones de archivo agregando cualquier otra extensión que quieras que Apache trate como archivos PHP. Por ejemplo:

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

Después de hacer estos cambios, reinicia Apache para aplicar la nueva configuración. En la mayoría de los sistemas, puedes hacer esto con el comando sudo service apache2 restart o sudo systemctl restart apache2.

Solución de problemas de instalación de PHP

Confirma que PHP está instalado ejecutando php -v en la línea de comandos. Este comando muestra la versión de PHP y los detalles de la instalación. Si no funciona, es posible que PHP no esté instalado o no esté en el PATH de tu sistema.

Verifica la compatibilidad de la versión de PHP con tu instalación de Apache. Asegúrate de estar usando una versión de PHP que funcione con tu versión de Apache. Consulta la documentación de Apache y PHP para encontrar versiones compatibles.

Revisa la configuración de tu php.ini para asegurarte de que PHP esté configurado correctamente. Busca configuraciones como display_errors y error_reporting para ayudar a diagnosticar cualquier problema relacionado con PHP. Puedes encontrar la ubicación de tu archivo php.ini ejecutando php --ini en la línea de comandos.