Solucionar problemas

Registrar errores de PHP para un fichero concreto

Revisado el 2 min de lectura depuracion php

En aplicaciones en producción el mostrado de errores debe permanecer desactivado para no revelar rutas, consultas ni otros datos internos a los visitantes.

Realiza la depuración preferiblemente en un entorno de staging que reproduzca el problema. Si excepcionalmente debes diagnosticar un fichero en producción y PHP llega a ejecutarlo, mantén display_errors desactivado y envía los errores a un registro privado fuera de public_html:

error_reporting(E_ALL);
ini_set('display_errors', '0');
ini_set('log_errors', '1');
ini_set('error_log', '/home/CPANEL_USUARIO/logs/php-debug.log');

error_reporting define los errores que se registrarán y E_ALL aplica el nivel máximo.

Estas directivas se aplican durante la ejecución. No pueden registrar un error de sintaxis o compilación del mismo fichero si ese error impide que PHP llegue a ejecutarlas. En ese caso, activa primero el registro para la versión efectiva de PHP desde cPanel o utiliza un fichero auxiliar válido que aplique estas directivas y después incluya el fichero que quieres comprobar.

Antes de probar, crea el directorio fuera de la raíz web y protege el fichero con permisos 0600. Limita la captura al tiempo imprescindible y evita registrar datos sensibles.

Al terminar, elimina estas líneas del fichero, comprueba que display_errors sigue desactivado y borra el registro cuando ya no sea necesario para el diagnóstico.

Alcance real de estas líneas

Aunque las coloques en un archivo concreto, los ajustes afectan al resto de esa ejecución PHP, incluidos archivos que se carguen después; no filtran el registro para que aparezcan solo errores de ese archivo. Si necesitas acotar la prueba, utiliza una petición controlada y filtra sus entradas por hora y ruta.

Añade el código en una posición válida de PHP: una declaración declare(strict_types=1) o un namespace puede tener requisitos de posición. No antepongas instrucciones de forma automática a cualquier archivo. Valida la sintaxis con la misma versión de PHP antes de reproducir el error.

También te puede ayudar

¿Algo no cuadra o ha cambiado? Cuéntanoslo y lo revisamos.