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:

Relacionado:  Obtener datos de php://input en PHP usando Laravel

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.


Estoy disponible para trabajar en tu proyecto o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.
Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Únete a otros 517 suscriptores


parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

0 Comments

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: