linux

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.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

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

Entradas recientes

Resetear GOOJPRT PT-210 MTP-II (Impresora térmica)

El día de hoy vamos a ver cómo restablecer la impresora térmica GOOJPRT PT-210 a…

2 días hace

Proxy Android para impresora térmica ESC POS

Hoy voy a enseñarte cómo imprimir en una impresora térmica conectada por USB a una…

2 días hace

Android – Servidor web con servicio en segundo plano

En este post voy a enseñarte a programar un servidor web en Android asegurándonos de…

3 días hace

Cancelar trabajo de impresión con C++

En este post te quiero compartir un código de C++ para listar y cancelar trabajos…

1 mes hace

Copiar bytes de Golang a JavaScript con WebAssembly

Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…

2 meses hace

Imprimir PDF con Ghostscript en Windows de manera programada

Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…

2 meses hace