He aquí una breve explicación de
las directivas de configuración.
-
error_reporting
integer
-
Establece el nivel de notificación de errores. El parámetro es o bien un valor de tipo
integer que representa un campo de bits, o bien constantes con nombre. Los niveles de error_reporting
y las constantes están descritos en
Constantes predefinidas,
y en php.ini. Para establecerlo en tiempo de ejecución, se ha de usar la
función error_reporting(). Vése también la
directiva display_errors.
En PHP 5.3 o posterior, el valor predeterminado
es E_ALL
&
~E_NOTICE
&
~E_STRICT
&
~E_DEPRECATED
. Este ajuste no muestra
los niveles de error E_NOTICE
, E_STRICT
y E_DEPRECATED
. Quizás quiera
mostrarlos durante el desarrollo.
Antes de PHP 5.3.0, el valor predeterminado
es E_ALL
&
~E_NOTICE
&
~E_STRICT
.
en PHP, el valor predeterminado es E_ALL
& ~E_NOTICE
.
Nota:
La habilitación de E_NOTICE
durante el desarrollo tiene
algunos beneficios. Para las depuración: los mensajes NOTICE avisarán
de posibles errores en el código. Por ejemplo, se advierte del uso de valores no
asignados. Es extremadamente útil para encontrar errartas y
ahorrar tiempo en la depuración. Los mensajes NOTICE avisarán de un estilo malo.
Por ejemplo, $arr[item]
es mejor que sea escrito como
$arr['item']
ya que PHP intenta tratar
"item"
como una constante. Si no es una constante, PHP asume
que es un índice de string del array.
Nota:
En PHP 5 está disponible el nuevo nivel de error E_STRICT
.
Antes de PHP 5.4.0, E_STRICT
no estaba incluido dentro de
E_ALL
, por lo que se teniía de habilitar explícitamente este tipo de
nivel de error en PHP < 5.4.0. La habilitación de E_STRICT
durante el desarrollo
tiene algunos beneficios. Los mensajes STRICT proporcionan sugerencias que pueden ayudar
a asegurarse de la mejor interoperabilidad y la compatibilidad hacia delante del código.
Estos mensajes pueden incluir cosas como llamar a métodos no estáticos de forma
estática, definir propiedades en una definición de clase compatible mientras
se definió en un trait usado, y antes de PHP 5.3, algunas características obsoletas
emitirían errores E_STRICT
como asignar
objetos por referencias durante la instanciación.
Nota:
Constantes de PHP fuera de PHP
El uso de constantes de PHP fuera de PHP, como en httpd.conf,
no tiene un propósito útil, por lo que, en tales casos, se requerirán los valores
de tipo integer. Y ya que se añadirán más niveles de error en el futuro, el valor
máximo (para E_ALL
) cambiará igualmente. Por lo que, en lugar de
E_ALL
se ha de considerar el uso de un valor grande para cubrir todos los campos
de bits desde la actualidad hasta bien entrado en el futuro, un valor numérico como
2147483647
(incluye todos los errores, no sólo
E_ALL
).
-
display_errors
string
-
Determina si los errores deberían ser impresos en pantalla
como parte de la salida o si deberían ocultarse al usuario.
El valor "stderr"
envía los errores a stderr
en vez de a stdout
. Este valor está disponible a partir de PHP
5.2.4. En versiones anteriores esta directiva era de tipo boolean.
Nota:
Ésta es una característica para ayudar al desarrollo y nunca debería usarse
en sistemas de producción (p.ej. en sistemas conectados a internet).
Nota:
Aunque display_errors puede ser establecido en tiempo de ejecución (con ini_set()),
no tendrá ningún efecto si el script tiene errores fatales.
Esto es debido a que la acción deseada en tiempo de ejecución no se ejecuta.
-
display_startup_errors
boolean
-
Incluso cuando display_errors está activado, los errores que ocurren durante la secuencia de
arranque de PHP no se muestran. Se recomienda encarecidamente mantener desactivado
display_startup_errors, excepto para la depuración.
-
log_errors
boolean
-
Indica si los mensajes de error del script deberían de registrarse en el
registro del servidor o en error_log.
Esta opción es, por lo tanto, específica para servidores.
Nota:
Se aconseja encarecidamente usar el registro de errores en lugar de
mostrar los errores en sitios web de producción.
-
log_errors_max_len
integer
-
Establece la longitud máxima de log_errors en bytes. En
error_log se añade información acerca
del origen. El valor predeterminado es 1024, y 0 permite no aplicar
ninguna longitud máxima en absoluto.
Esta longitud se aplica a los errores registrados, a los errores mostrados y también a
$php_errormsg, pero no a las funciones llamadas explícitamente
tal come error_log().
Cuando se usa un integer, el
valor del mismo es medido en bytes. También se puede usar la notación reducida, tal como se describe
en esta FAQ.
-
ignore_repeated_errors
boolean
-
No registra mensajes repetidos. Los mensajes repetidos deben ocurrir en la misma
línea del mismo fichero a menos que
ignore_repeated_source
esté establecido a true.
-
ignore_repeated_source
boolean
-
Ignora el origen del mensaje cuando se ignoran mensajes repetidos. Cuando este ajuste
está activado (On) no se registrarán errores con mensajes repetidos de diferentes ficheros o
líneas del código fuente.
-
report_memleaks
boolean
-
Si este parámetro está activado (On), que es lo predeterminado, mostrará un
informe de pérdidas de memoria detectado por el gestor de memoria Zend. Este informe
será enviado a stderr en las plataformas Posix. En Windows, será enviado
al depurador usando OutputDebugString(), y podrá ser visto con herramientas
como » DbgView.
Este parámetro solo tiene efecto en una versión de depuración, y si
error_reporting incluye E_WARNING
en la lista
permitida.
-
track_errors
boolean
-
Si está habilitado, el último mensaje de error siempre estará presente en la
variable $php_errormsg.
-
html_errors
boolean
-
Si se habilita, los mensajes de error incluirán etiquetas HTML. El formato para los errores
HTML produce mensajes clicables que dirigen al usuario a una página
que describe el error o función que causó el error. Estas referencias
se ven afectadas por
docref_root y
docref_ext.
Si se inhabilita, el mensaje de error será solamente texto plano.
-
xmlrpc_errors
boolean
-
Si se habilita, se desactiva el reporte de errores normal y se formatean los errores
como mensajes de error XML-RPC.
-
xmlrpc_error_number
integer
-
Usado como el valor del elemento faultCode de XML-RPC.
-
docref_root
string
-
El nuevo formato de error contiene una referencia a una página que describe el error o a la
función que causa el error. En caso de páginas de manual, se puede descargar el
manual en su idioma y establecer esta directiva ini al URL de su copia
local. Si a su copia local del manual se puede llegar mediante "/manual/"
puede usar simplemente docref_root=/manual/
. Además tiene
que establecer docref_ext para que coincida con las extensiones de fichero de su copia
docref_ext=.html
. Es posible usar referencias
externas. Por ejemplo, se puede usar
docref_root=http://manual/en/
o
docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon
&url=http%3A%2F%2Fwww.php.net%2F"
La mayoría de las veces será necesario que el valor de docref_root termine con una barra "/"
.
Sin embargo, veáse el segundo ejemplo de antes, el cuál ni la tiene ni la necesita.
Nota:
Esta es una característica para ayudar al desarrollo, ya que hace más fácil
buscar una descripción de una función. Sin embargo, nunca debería usarse en
sistemas de producción (p.ej. en sistemas conectados a internet).
-
docref_ext
string
-
Véase docref_root.
Nota:
El valor de docref_ext debe comenzar con un punto "."
.
-
error_prepend_string
string
-
String a imprimir antes de un mensaje de error.
-
error_append_string
string
-
String a imprimir después de un mensaje de error.
-
error_log
string
-
Nombre del fichero donde los errores del script deberían ser registrados. El fichero debería
ser modificable por el usuario del servidor web. Si se usa el
valor especial syslog
, los errores
son enviados en su lugar al registro del sistema. En Unix, esto quiere decir
syslog(3) y en Windows quiere decir el registro de sucesos. Véase también:
syslog().
Si esta directiva no está establecida, los errores se enviarán al registro de error de la SAPI.
Por ejemplo, un registro de error en Apache o stderr
en CLI.
Véase también error_log().
-
error_log_mode
int
-
File mode for the file described set in
error_log.
-
syslog.facility
string
-
Especifica el tipo de programa que está registrando el mensaje.
Solamente efectivo si error_log se establece a "syslog".
-
syslog.filter
string
-
Especifica el tipo de filtro a aplicar a los mensajes registrados. Los caracteres
pertimitos se pasan sin modificar; los demás se escriben en su
representación hexadecimal prefijados con \x
. Existen
tres tipos de filtro permitidos:
-
all
– todos los caracteres
-
no-ctrl
– todos los caracteres excepto los de control
-
ascii
– todos los caracteres ASCII imprimibles y NL
Solamente efectivo si error_log se establece a "syslog".
-
syslog.ident
string
-
Especifica la cadena de sangrado que antecede a todo mensaje.
Solamente efectivo si error_log se establece a "syslog".