PHP no muestra los errores en Linux: solución

Hoy te voy a mostrar una posible solución al problema de que PHP no muestra errores cuando se ejecuta en un servidor Linux (en mi caso fue con un derivado de Debian).

El problema es simple: PHP no muestra ningún error incluso aunque lo haya, es decir, no imprime ningún error en el navegador web, pero sabemos que el error debería estar ahí.

En otras ocasiones muestra un error 500 pero no muestra ningún mensaje explicativo.

Explicación del problema

Esto es debido a la seguridad y configuración de nuestro servidor. En varios casos se especifica que los errores no se muestren al usuario, sino que se guarden en un log.

Por lo tanto PHP no mostrará los errores, sino que los colocará en un archivo con extensión log.

De hecho no tiene que ver tanto con PHP, sino con Apache y su manejo de errores. Dado que la combinación de este software es la más popular veamos cómo ver los mensajes de error.

Ver mensajes de error

Como lo dije, normalmente esto pasa cuando usamos un servidor propio o VPS con Linux Ubuntu, Debian, etcétera; ya que si usamos Windows con XAMPP o un hosting compartido no hay problema.

El archivo que importa es el log de error de Apache ubicado normalmente en /var/log/apache2/error.log

Puedes usar cat para mostrar todo el contenido, more para leerlo poco a poco o mi favorito para estos casos: tail (que solo muestra las últimas líneas del archivo, la “cola”)

En mi caso es:

tail /var/log/apache2/error.log

Con la siguiente salida en la que se observan los errores:

Mostrando errores de PHP con log de Apache

Nota que en algunos casos puede que necesites permisos de superusuario y el comando cambiaría a:

sudo tail /var/log/apache2/error.log

Conclusión

Por cierto, en ocasiones estos logs se comprimen y se guardan como gz en el mismo directorio, para tener el error.log siempre “fresco” día con día; es decir, se respalda el del día y se crea uno nuevo.

No te preocupes, si quieres depurar un error recién hecho puedes consultar el log actual.

Finalmente recuerda que en mi caso usé tail, puedes leer el archivo con otro comando si quieres. Incluso puedes usar un programa de interfaz gráfica en caso de que tengas acceso al mismo.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario