Muchas veces suele ocurrir que errores de programación de PHP (por ejemplo, falta de validación de variables o comprobación de límites en estructuras) llenan los logs del servidor Apache con mensajes PHP Notice. Si estos errores se repiten muy frecuentemente, pueden ocasionar un problema de espacio en disco (ya que los archivos de log crecen en forma desmedida). Sin contar con que llenan los logs con mensajes irrelevantes para el administrador de sistemas. Por lo tanto, puede ser necesario deshabilitarlos para que directamente no se guarde registro de los mismos en los logs de Apache.



Los siguientes mensajes en un log de Apache son un ejemplo de errores PHP Notice:

[Sat Apr 25 10:31:31 2015] [error] [client 192.168.132.42] PHP Notice:  Undefined offset: 0 in /var/www/linuxito.com/app/dumbclass.php on line 279, referer: http://www.linuxito.com/horriblesite/uglypage.php
[Sat Apr 25 10:31:31 2015] [error] [client 192.168.132.42] PHP Notice:  Undefined offset: 0 in /var/www/linuxito.com/app/dumbclass.php on line 279, referer: http://www.linuxito.com/horriblesite/uglypage.php

En este caso probablemente el script PHP está tratando de acceder a un índice de un arreglo que aún no ha sido inicializado o es nulo. Este es un caso típico de carencia de validación de variables. Es muy posible que este error no afecte en absoluto el funcionamiento correcto del sitio en cuestión (de lo contrario el desarrollador/tester lo debería haber afectado). Pero, una vez en producción, puede generar los problemas anteriormente mencionados.

Los mensajes PHP Notice son aquellos pertenecientes al nivel de reporte de errores E_NOTICE. Estos son avisos en tiempo de ejecución que indican que un script ha encontrado alguna situación que puede derivar en error, pero que también puede originarse en el curso normal de ejecución. El nivel de reporte de errores E_NOTICE suele activarse en entornos de testing para depurar scripts PHP. Por defecto está desactivado aunque, al tratarse de un parámetro de configuración, puede variar de distribución en distribución.

Para deshabilitar el registro de errores PHP Notice, se debe editar el archivo de configuración de PHP (/etc/php5/apache2/php.ini en Debian y derivados) y configurar la variable error_reporting de la siguiente forma:

error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE

De esta forma se indica que se registren todos los mensajes de error (E_ALL), excepto las advertencias de código próximamente obsoleto (E_DEPRECATED) y los avisos (E_NOTICE).

Luego de modificar el archivo de configuración de PHP es necesario reiniciar el servidor Apache:

service apache2 restart

Para mayor información, acceder a las siguietnes páginas del manual de PHP:

PHP: Installing/Configuring - Runtime Configuration - error_reporting

PHP: Error Handling - Predefined Constants


Tal vez pueda interesarte


Compartí este artículo