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

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

11 horas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

11 horas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

11 horas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

12 horas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

12 horas hace

Solución: Apache – Server unable to read htaccess file

Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…

1 día hace

Esta web usa cookies.