¿Dónde puedo ver errores de PHP y advertencias?

Si te encuentras en una situación que requiere cambios en tu sitio y tu desarrollador no está disponible para ayudarte, el equipo de soporte capacitado de DreamHost puede ayudarte por una pequeña tarifa. Puedes encontrar más información sobre los servicios admitidos y los costos asociados en el artículo de Servicios Profesionales de DreamHost.

Generalidades

Cuando se realizan cambios de PHP en tu sitio (usualmente provenientes de la actualización de la versión PHP), es posible que PHP arroje errores y advertencias. En el pasado, estos se mostraban en tu sitio web y podías desactivarlos usando un archivo phprc.

DreamHost ahora desactiva todas las advertencias de PHP de forma predeterminada. Esto significa que nunca deberías verlos en tu sitio web al realizar cambios en PHP.

¿Cómo puedo mostrar las advertencias en mi sitio?

Para mostrar las advertencias en tu sitio, solo debes añadir la siguiente línea a tu archivo phprc:

display_errors = on

Si se producen errores de PHP, ahora se mostrarán en tu sitio.

Esto NO se recomienda en un sitio web activo, ya que los visitantes verán los errores. La mejor opción es especificar qué tipos de errores te gustaría registrar y habilitar el registro de errores de PHP como se describe a continuación.

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

Puedes encontrar una lista completa de opciones aquí:

Además, puede excluir ciertos tipos de errores utilizando 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 reportes de error en tu script

Como se mencionó anteriormente, el archivo phprc controla qué errores se muestran. Como tal, las siguientes líneas no funcionarán en tu script PHP para mostrar errores:

ini_set('display_errors',1);
error_reporting(E_ALL);

La única forma de mostrar errores es editar tu archivo phprc.

Configurar un registro personalizado de errores

Puedes agregar código a tu archivo phprc en el servidor para registrar todos los errores de PHP en un nuevo archivo llamado php.log.

Decide dónde debe 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 de inicio de tu usuario. Por ejemplo:

/home/username/php.log

No es posible crear tu archivo php.log en su 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

Añade estas líneas a tu archivo phprc:

log_errors = 1 
error_log = /home/username/php.log

Reemplaza username con tu usuario SHELL.

Termina todos los procesos activos 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 tus procesos PHP nuevamente:

Prueba el archivo php.log

Para probar el archivo php.log, crea un archivo PHP que arroje un error. Por ejemplo, crea un archivo llamado error.php con el siguiente contenido y súbelo a tu sitio.

<?php 
$file=fopen("welcome.txt","r");
?> 

Visita la página example.com/error.php desde un navegador. Se lanza un error. Si luego revisas el directorio de inicio de tu usuario, verás que se ha creado el archivo php.log y que registraste este error de PHP. Ejecuta lo siguiente para comprobarlo:

[server]$ cat $HOME/php.log

Resumen

Al principio, el nuevo archivo php.log no existirá. Solo después de que se arroja un error de PHP, el archivo php.log se crea automáticamente. Este archivo continuará registrando futuros errores de PHP.

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?