Generalidades
Este artículo explica cómo habilitar y controlar los errores de PHP en tu sitio web. Esto puede ser necesario para solucionar problemas en un sitio web, ya que DreamHost deshabilita todas las advertencias de PHP de manera predeterminada, por lo que nunca deberías verlas en tu sitio web cuando realices cambios en PHP.
Habilitar las advertencias de PHP
Para mostrar las advertencias en tu sitio, solo debes agregar la siguiente línea a tu archivo phprc:
display_errors = on
Si se producen errores de PHP, ahora se mostrarán en tu sitio.
Sitios en Vivo
Esto NO se recomienda en un sitio web en vivo, ya que los visitantes verán los errores. La mejor opción es especificar qué tipos de errores deseas registrar y habilitar el registro de errores de PHP como se describe a continuación.
Usar un script
Agregar las siguientes líneas en un script no funcionará, ya que la única forma de habilitar el informe de errores es dentro de tu archivo phprc.
ini_set('display_errors',1); error_reporting(E_ALL);
Controlar qué tipo de errores se muestran
PHP te permite especificar qué tipo de errores te gustaría que se muestren, o guardarlos en tu archivo de registro de errores de PHP. Puedes encontrar una lista completa de opciones aquí. Por ejemplo:
Directiva PHP | Explicación |
---|---|
error_reporting = E_ALL | Registra todos los errores y advertencias. |
error_reporting = E_ERROR | Errores fatales que ocurren durante el inicio de PHP. |
error_reporting = E_WARNING | Advertencias en tiempo de ejecución (errores no fatales). La ejecución del script no se detiene. |
error_reporting = E_NOTICE | Registra avisos de tiempo de ejecución (generalmente errores en el código de tu sitio web). |
Además, puede excluir ciertos tipos de errores usando el operador bit a bit ~. Por ejemplo, esto mostrará todos los errores excepto advertencias NOTICE y DEPRECATED.
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
Configurar el registro de errores personalizado
Los siguientes pasos agregan código a tu archivo phprc para registrar todos los errores de PHP en un nuevo archivo llamado php.log.
Decidir donde debería ir el archivo php.log
Primero debes decidir dónde deseas que se cree tu archivo php.log. Esto puede estar en cualquier directorio que desees siempre que tu usuario pueda escribir en ese directorio. La ubicación más simple sería en el directorio principal de tu usuario. Por ejemplo:
/home/username/php.log
No es posible crear tu archivo php.log en tu directorio /home/username/logs. Este directorio es creado por DreamHost y es propiedad de dhapache, por lo tanto, tu usuario no puede escribir en este directorio.
Editar el archivo phprc
Agrega estas líneas a tu archivo phprc, reemplazando username con tu usuario shell.
log_errors = 1
error_log = /home/username/php.log
Elimina todos los procesos de php
Asegúrate de terminar todos los procesos activos de php para asegurarte de que tu nueva configuración tome efecto.
Confirmar tus cambios
Una vez que hayas editado el archivo y hayas terminado todos los procesos de PHP, debes verificar para confirmar que los valores se hayan actualizado. Puedes hacer esto creando un archivo phpinfo.php.
Si no ves que tus cambios se han actualizado, intenta eliminar los procesos de PHP nuevamente:
Probar el archivo php.log
El nuevo archivo php.log no existirá en un principio. Se crea automáticamente después de que se produce un error de PHP. Este archivo continuará registrando los errores de PHP futuros.
Para probar el archivo php.log, crea un archivo PHP que genere un error. Por ejemplo, crea un archivo llamado error.php con el siguiente contenido y cárgalo en tu sitio.
<?php $file=fopen("welcome.txt","r"); ?>
Visita la página example.com/error.php desde un navegador. Sale un error. Si luego revisas el directorio principal de tu usuario, verás que se ha creado el archivo php.log y que registraste este error de PHP. Corre lo siguiente para comprobarlo:
[server]$ cat ~/php.log