Mostrar errores PHP para detectar y solucionar

Por Felipe

Publicado en:

Para mostrar los errores de PHP tienes dos vías principales: activarlos de forma manual con las funciones ini_set('display_errors', 1) y error_reporting(E_ALL), o editando el archivo php.ini; y, si trabajas con WordPress, definir WP_DEBUG como true en wp-config.php. Así verás los avisos en pantalla o en un registro.

Por qué conviene mostrar los errores de PHP

PHP es uno de los lenguajes más utilizados en el desarrollo web del lado del servidor, junto con HTML, CSS y JavaScript. Por defecto, muchos servidores ocultan los errores de PHP para no exponer información sensible a los visitantes. Eso es positivo de cara al público, pero complica el trabajo del programador: si un aviso no se muestra, puede pasar totalmente desapercibido y dejar tu web funcionando a medias sin que sepas por qué.

Identificar qué está fallando

Activar la visualización de errores te permite ver el mensaje exacto, el archivo y la línea donde se produce el problema. En lugar de enfrentarte a una pantalla en blanco, el temido «error 500», obtienes una pista concreta que reduce muchísimo el tiempo de diagnóstico. Es la diferencia entre adivinar y saber dónde mirar.

Corregir errores tras una actualización

Las actualizaciones de PHP, de un gestor de contenidos o de sus complementos son una de las causas más frecuentes de fallos. Una función obsoleta o una incompatibilidad entre versiones puede romper una página entera. Con los errores a la vista identificas rápidamente qué actualización ha provocado el conflicto y puedes revertirla o corregirla sin dar palos de ciego.

Tipos de errores que puedes encontrar en PHP

No todos los errores de PHP tienen la misma gravedad, y conocer las categorías principales te ayuda a interpretarlos. Los avisos de tipo notice son leves, como usar una variable que no se ha definido; no detienen la ejecución, pero conviene corregirlos. Los warning o advertencias señalan problemas más serios, como intentar incluir un archivo que no existe, aunque el script continúa funcionando. Los errores fatal sí interrumpen por completo la página, por ejemplo al llamar a una función que no está declarada. Y los mensajes deprecated indican que estás usando una función antigua que dejará de estar disponible en futuras versiones de PHP. Saber a qué categoría pertenece cada mensaje te permite priorizar qué corregir primero y entender si el problema es urgente o simplemente mejorable.

Cómo mostrar los errores de PHP de forma manual

La forma más directa de activar los errores en un script concreto es añadir estas dos líneas al principio del archivo PHP: ini_set('display_errors', 1); y error_reporting(E_ALL);. La primera instrucción le indica a PHP que muestre los errores en pantalla, y la segunda fija el nivel de notificación en E_ALL, es decir, todos los tipos de error y aviso.

Si prefieres una solución global para todo el servidor, puedes editar el archivo php.ini y establecer display_errors = On. En ese mismo archivo conviene activar log_errors = On para que, además de mostrarse, los errores queden registrados en un fichero de log que podrás revisar más tarde. Trabajar con el log es la opción más limpia cuando no quieres llenar la pantalla de mensajes.

Cómo mostrar los errores de PHP en WordPress

WordPress incorpora su propio sistema de depuración, así que no necesitas tocar el código de los archivos del núcleo. Abre el archivo wp-config.php que está en la raíz de la instalación y busca la línea que indica que ahí termina la edición. Justo encima, añade o modifica la constante define('WP_DEBUG', true);.

Con WP_DEBUG activado, WordPress mostrará los avisos y errores de PHP. Para tener más control, puedes acompañarla de dos constantes adicionales: define('WP_DEBUG_LOG', true);, que guarda todos los errores en el archivo wp-content/debug.log, y define('WP_DEBUG_DISPLAY', false);, que evita que esos errores se muestren a los visitantes mientras los sigues registrando en el log. Esta combinación es ideal para depurar sin estropear la experiencia de quien visita tu web.

Cómo revisar el registro de errores

Cuando trabajas con logs en lugar de mostrar los errores en pantalla, necesitas saber dónde se guardan. En una instalación de WordPress con WP_DEBUG_LOG activado, el archivo está en wp-content/debug.log. En un proyecto PHP genérico, la ubicación depende de la directiva error_log de tu php.ini o de la configuración del panel de tu alojamiento. Revisar este registro con regularidad te permite detectar problemas recurrentes que quizá no afectan a la vista, pero que sí ralentizan tu web o generan comportamientos extraños. Conviene vaciar el log de vez en cuando para que no crezca sin control y ocupe espacio innecesario en tu servidor.

Personalizar qué errores se muestran

No siempre interesa ver absolutamente todo. La función error_reporting() admite distintos niveles para filtrar el ruido. Por ejemplo, error_reporting(E_ALL & ~E_NOTICE) muestra todos los errores excepto los avisos menores de tipo notice, y error_reporting(E_ERROR | E_WARNING) limita la salida a errores graves y advertencias. Ajustar el nivel te ayuda a centrarte en lo importante cuando una página genera demasiados mensajes a la vez.

Buenas prácticas en un entorno de producción

Mostrar los errores en pantalla es muy útil mientras desarrollas o haces pruebas, pero en un sitio en producción conviene desactivar display_errors y registrar los fallos en un log privado. Exponer rutas de archivos o detalles internos puede facilitar ataques y, además, ofrece una mala imagen al visitante. Lo recomendable es depurar en un entorno de pruebas y, una vez resuelto el problema, volver a ocultar los mensajes en el sitio público.

Recuerda también que la versión de PHP de tu servidor influye directamente en la estabilidad y el rendimiento de tu web. Trabajar sobre una versión moderna y bien configurada evita muchos de estos errores desde el principio. Si quieres asegurarte de contar con un entorno actualizado y fácil de gestionar, revisa las opciones de planes de hosting que permiten elegir y cambiar la versión de PHP desde el panel de control, sin necesidad de llamar por teléfono.

Preguntas frecuentes

¿Es seguro mostrar los errores de PHP en una web publicada?

No es recomendable. En producción conviene registrar los errores en un archivo de log privado y mantener display_errors desactivado, para no exponer información interna a posibles atacantes ni a los visitantes.

¿Dónde se guardan los errores en WordPress?

Si activas WP_DEBUG_LOG, WordPress guarda los mensajes en el archivo wp-content/debug.log. Puedes abrirlo con cualquier editor de texto para revisar el historial de avisos y errores.

¿Qué diferencia hay entre el método manual y WP_DEBUG?

El método manual con ini_set o php.ini sirve para cualquier proyecto PHP. WP_DEBUG es la herramienta específica de WordPress e integra el registro y la visualización sin tocar los archivos del núcleo.

¿Tu web necesita un hosting que vuele?

Hosting en España con soporte real en español, migración gratis, SSL incluido y 30 días de garantía. Sin líos y sin costes ocultos.

Ver planes de hosting →