Parámetros de configuración relacionados con errores y log

Dentro del fichero de configuración **php.ini** disponemos de una parte donde podemos gestionar qué tipo de errores y su nivel. También disponemos de parámetros para realizar log sobre nuestra aplicación.

Sobre el fichero php.ini

El fichero de configuración **php.ini** se lee nada más arrancar PHP. Cuando usamos PHP como módulo de servidor, esto sucede únicamente cuando se inicia el servidor.

Ejemplo de php.ini extraído del manual de PHP:

; todo texto en una línea tras un punto y coma sin comillas (;) será ignorado
[php] ; los marcadores de sección (textos entre corchetes) también se ignoran
; Los valores de tipo boolean puede establecerse a:
;    true, on, yes
; o  false, off, no, none
register_globals = off
track_errors = yes

; se pueden encerrar los strings entre comillas dobles
include_path = ".:/usr/local/lib/php"

; las barras invertidas reciben el mismo tratamiento que el resto de caracteres
include_path = ".;c:\php\lib"

Desde la versión 5.2 de PHP, en su versión empaquetada (zip), se distribuyen dos archivos INI. Uno se recomienda que sea usado en entornos de producción y otro se recomienda que sea utilizado en entornos de desarrollo. Son php.ini-production y php.ini-development respectivamente.

El fichero **php.ini-production** contiene valores que sostienen la seguridad, el rendimiento y las mejores prácticas en su núcleo. Debemos tener en cuenta que estos ajustes pueden ser incompatibles con aplicaciones antiguas o con un nivel de seguridad inferior. La comunidad de PHP recomienda el uso de este fichero php.ini-production en entornos de producción y pruebas.

El fichero **php.ini-development** es muy similar a su variante de producción, excepto que es mucho más detallado respecto al volcado de errores. La comunidad de PHP nos recomenda el uso de este fichero sólo en entornos de desarrollo, ya que, se muestran por pantalla todos los errores, advertencias y recomendaciones por parte de PHP. Ese tipo de mensajes no deben mostrarse a los usuarios finales de una aplicación ya que podrían provocar, sin darnos cuenta, fugas de información privada o datos sensibles de configuración del servidor.

Según el entorno en el que nos encontremos lo que tenemos que hacer es renombrar uno de los ficheros por php.ini y adaptarlo a nuestras necesidades (Eso es lo que hacen los paquetes WAMP y XAMPP cuando se instalan. Introducir la configuración en el fichero php.ini según las rutas de instalación, etc.)

Como hemos comentado en la sección anterior, desde la versión 5.2.0 de PHP se han incluido algunas recomendaciones de configuración en el fichero php.ini según el entorno en el que estemos trabajando: desarrollo (Development) o producción (Production). A continuación podemos ver un ejemplo sencillo

; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
; http://php.net/error-reporting
 error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

En la parte de manejo de errores y log podemos modificar las siguientes directivas:

error_reporting

Define que errores y de que tipo serán mostrados.

A partir de la versión 5.4.0, la directiva **error_reporting** está activada al máximo nivel de errores (E_ALL) incluyendo el valor de E_STRICT. (en versiones inferiores nos recomendaban activarlo a E_ALL | E_STRICT).

En producción, para la versión 5.4.0 nos recomiendan darle el siguiente valor: E_ALL & ~E_DEPRECATED & ~E_STRICT
Para versiones inferiores nos recomendan darle el valor siguiente: E_ALL & ~E_DEPRECATED y deshabilitar los errores.

Veamos un ejemplo de configuración en el php.ini:

error_reporting  = E_ALL & ~E_NOTICE

display_errors

Esta directiva activa la visualización de errores, notificaciones y advertencias por pantalla. Mostrar el máximo de errores, advertencias y/o notificaciones por pantalla es muy útil cuando estamos en desarrollo pero una mala práctica (incluso peligrosa) cuando nuestra aplicación se encuentra en un servidor en producción.

Por defecto, su valor es **On**, mientras que en producción se recomienda colocarla a **Off**.

; Default Value: On
; Development Value: On
; Production Value: Off
; http://php.net/display-errors
display_errors = On

log_errors

Indica si los mensajes de error del script PHP deberían de registrarse en el fichero de log del servidor o en error_log.

Por defecto está deshabilitado, ya que, es una opción muy específica para servidores de pruebas o preproducción.

; Default Value: Off
; Development Value: On
; Production Value: On
; http://php.net/log-errors
log_errors = On

track_errors

Si está habilitado, el último mensaje de error siempre estará presente en la variable **$php_errormsg**

; Default Value: Off
; Development Value: On
; Production Value: Off
; http://php.net/track-errors
track_errors = On

Más información en este enlace: http://docs.php.net/manual/es/errorfunc.configuration.php

results matching ""

    No results matching ""