Directivas de php.ini
PHP Manual

Descripción de las directivas de núcleo en php.ini

Esta lista incluye las directivas de núcleo en php.ini que puede definir para configurar su instalación de PHP. Las directivas gestionadas por extensiones son listadas en las páginas de documentación de las extensiones respectivamente. Por ejemplo, puede encontrarse información sobre las directivas de sesiones en la página de sesiones.

Opciones Httpd

Opciones Httpd
Nombre Predeterminado Modificable Cambios
async_send "0" PHP_INI_ALL  

Opciones del Lenguaje

Opciones del Lenguaje y Configuración Variada
Nombre Predeterminado Modificable Cambios
short_open_tag "1" PHP_INI_PERDIR PHP_INI_ALL en PHP <= 4.0.0.
asp_tags "0" PHP_INI_PERDIR PHP_INI_ALL in PHP <= 4.0.0.
precision "14" PHP_INI_ALL  
y2k_compliance "1" PHP_INI_ALL  
allow_call_time_pass_reference "1" PHP_INI_PERDIR PHP_INI_ALL en PHP <= 4.0.0.
expose_php "1" sólo php.ini  
zend.ze1_compatibility_mode "0" PHP_INI_ALL Disponible desde PHP 5.0.0.

A continuación se presenta una corta explicación de las directivas de configuración.

short_open_tag boolean

Indica si se permite el uso de la forma corta (<? ?> ) de la etiqueta de apertura de PHP. Si desea usar PHP en conjunto con XML, puede deshabilitar esta opción, de modo que pueda usar <?xml ?> en forma directa. De otro modo, puede imprimir esta cadena con PHP, por ejemplo: <?php echo '<?xml version="1.0"'; ?> . Asimismo, si el parámetro está deshabilitado, debe usar la forma larga de la etiqueta de apertura de PHP (<?php ?> ).

Note: Esta directiva afecta también la contracción <?= , la cual es idéntica a <? echo . El uso de este atajo requiere que short_open_tag se encuentre habilitado.

asp_tags boolean
Habilita el uso de etiquetas <% %> tipo-ASP además de las etiquetas convencionales <?php ?>. Esto incluye el atajo para imprimir valores de variable <%= $valor %>. Para más información, vea Escapar desde HTML.

Note: El soporte para etiquetas tipo-ASP fue agregado en 3.0.4.

precision integer
El número de dígitos significativos desplegados en números de punto flotante.
y2k_compliance boolean
Obligar compatibilidad con el año 2000 (causa problemas con navegadores no-compatibles)
allow_call_time_pass_reference boolean

Indica si se debe emitir una advertencia cuando se pasan argumentos por referencia al momento de efectuar llamados de función. Este método es considerado obsoleto y es posible que no sea soportado en versiones futuras de PHP/Zend. El método recomendado de especificar cuáles argumentos deben ser pasados por referencia se encuentra en la declaración de funciones. Es recomendable que proceda a deshabilitar esta opción y asegurarse de que sus scripts trabajen correctamente sin ella, de modo que pueda estar seguro de que trabajarán con versiones futuras del lenguaje (recibirá una advertencia cada vez que use esta característica).

Pasar argumentos por referencia al momento de llamar una función fue declarado obsoleto por razones de limpieza del código. La función puede modificar su argumento de una forma no documentada si no se declara que el argumento es pasado por referencia. Para prevenir efectos colaterales, es mejor especificar cuáles argumentos son pasados por referencia únicamente en la declaración de la función.

Vea también las Referencias Explicadas.

expose_php boolean

Decide si PHP debe exponer el hecho de que está instalado en el servidor (p.ej. agregando su firma en la cabecera del servidor Web). No constituye un riesgo de seguridad en ninguna forma, pero hace posible determinar si usted usa PHP es su servidor o no.

zend.ze1_compatibility_mode boolean

Habilita el modo de compatibilidad con el Motor Zend 1 (PHP 4). Afecta el modo de clonar, moldear (los objetos sin propiedades son moldeados a FALSE o 0) y comparar objetos. En este modo, los objetos son pasados de forma predeterminada por valor en lugar de hacerlo por referencia.

Vea también la sección titulada Migración de PHP 4 a PHP 5.

Límites de Recursos

Límites de Recursos
Nombre Predeterminado Modificable Cambios
memory_limit "128M" PHP_INI_ALL "8M" antes de PHP 5.2.0, "16M" en PHP 5.2.0

A continuación se presenta una corta explicación de las directivas de configuración.

memory_limit integer

Este valor define la cantidad máxima de memoria en bytes que un script puede reservar. Esto ayuda a prevenir que scripts pobremente escritos terminen consumiendo toda la memoria disponible en un servidor. Note que para no declarar un límite de memoria, puede definir esta directiva con el valor -1.

Antes de PHP 5.2.1, para usar esta directiva, tenía que ser habilitada en tiempo de compilación usando -enable-memory-limit en la línea de configuración. Esto también era requerido para definir las funciones memory_get_usage() y memory_get_peak_usage().

Cuando se usa un número entero, el valor del mismo es medido en bytes. También se puede usar la notación reducida tal como se describe en esta FAQ.

Vea también: max_execution_time.

Ajuste de Rendimiento

Ajuste de Rendimiento
Nombre Predeterminado Modificable Registro de Cambios
realpath_cache_size "16K" PHP_INI_SYSTEM Disponible desde PHP 5.1.0.
realpath_cache_ttl "120" PHP_INI_SYSTEM Disponible desde PHP 5.1.0.

A continuación se presenta una corta explicación de las directivas de configuración.

realpath_cache_size integer

Determina el tamaño del caché realpath a ser usado por PHP. Este valor debe ser incrementado en sistemas en los que PHP abre muchos archivos, para reflejar la cantidad de operaciones de archivo realizadas.

realpath_cache_ttl integer

Duración de tiempo (en segundos) para mantener en caché la información de realpath para un archivo o directorio dado. En sistemas en los que raramente cambian los archivos, considere incrementar este valor.

Manejo de Datos

Opciones de Configuración de Manejo de Datos
Nombre Predeterminado Modificable Cambios
track_vars "On" PHP_INI_??  
arg_separator.output "&" PHP_INI_ALL Disponible desde PHP 4.0.5.
arg_separator.input "&" PHP_INI_PERDIR Disponible desde PHP 4.0.5.
variables_order "EGPCS" PHP_INI_PERDIR PHP_INI_ALL en PHP <= 5.0.5.
auto_globals_jit "1" PHP_INI_PERDIR Disponible desde PHP 5.0.0.
register_globals "0" PHP_INI_PERDIR PHP_INI_ALL en PHP <= 4.2.3.
register_argc_argv "1" PHP_INI_PERDIR PHP_INI_ALL en PHP <= 4.2.3.
register_long_arrays "1" PHP_INI_PERDIR Disponible desde PHP 5.0.0.
post_max_size "8M" PHP_INI_PERDIR PHP_INI_SYSTEM en PHP <= 4.2.3. Disponible desde PHP 4.0.3.
gpc_order "GPC" PHP_INI_ALL  
auto_prepend_file NULL PHP_INI_PERDIR PHP_INI_ALL en PHP <= 4.2.3.
auto_append_file NULL PHP_INI_PERDIR PHP_INI_ALL en PHP <= 4.2.3.
default_mimetype "text/html" PHP_INI_ALL  
default_charset "" PHP_INI_ALL  
always_populate_raw_post_data "0" PHP_INI_PERDIR PHP_INI_ALL en PHP <= 4.2.3. Disponible desde PHP 4.1.0.
allow_webdav_methods "0" PHP_INI_PERDIR  

A continuación se presenta una corta explicación de las directivas de configuración.

track_vars boolean

Si esta opción es habilitada, entonces las variables de Entorno, GET, POST, Cookies y Servidor pueden encontrarse en las matrices asociativas globales $_ENV, $_GET, $_POST, $_COOKIE, y $_SERVER.

Note que a partir de PHP 4.0.3, track_vars se encuentra habilitada siempre.

arg_separator.output string

El separador usado en URLs generadas por PHP para separar los argumentos.

arg_separator.input string

Lista de separadores usados por PHP para interpretar URLs de entrada en variables.

Note: ¡Cada caracter en esta directiva es considerado como separador!

variables_order string

Establece el orden de procesamiento de variables EGPCS (Entorno, GET, POST, Cookie, y Servidor). Por ejemplo, si variables_order se define como "SP", entonces PHP creará las variables superglobals $_SERVER y $_POST, pero no creará $_ENV, $_GET, ni $_COOKIE. El valor "" quiere decir que ninguna variable superglobals será definida.

Si la directiva, ahora obsoleta, register_globals es habilitada (ésta ha sido removida para PHP 6.0.0), entonces variables_order también configura el orden en que las variables ENV, GET, POST, COOKIE and SERVER son pobladas en el contexto global. De modo que por ejemplo si variables_order se define como "EGPCS", register_globals es habilitado, y tanto $_GET['action'] como $_POST['action'] son definidos, entonces $action tendrá el valor de $_POST['action'] ya que P viene después de G en nuestro valor de ejemplo de la directiva.

Warning

En las SAPIs CGI y FastCGI, la matriz $_SERVER es poblada con valores del entorno; S siempre es equivalente a ES sin importar la ubicación de E en cualquier otra parte de esta directiva.

Note: El contenido y el orden de $_REQUEST es también afectado por esta directiva.

auto_globals_jit boolean

Cuando es habilitado el parámetro, las variables SERVER y ENV son creadas al usarse por primera vez ("Just In Time", o justo a tiempo) en lugar de hacerlo cuando el script inicia. Si estas variables no son usadas al interior del script, esta directiva resultará en una ganancia en rendimiento.

Las directivas de PHP register_globals, register_long_arrays, y register_argc_argv deben ser deshabilitadas para que esta directiva tenga efecto. A partir de PHP 5.1.3 no es necesario deshabilitar register_argc_argv.

register_globals boolean

Indica si las variables EGPCS (Entorno, GET, POST, Cookie, Servidor) deben registrarse como variables globales o no.

A partir de » PHP 4.2.0, esta directiva tiene el valor predeterminado off.

Por favor lea el capítulo de seguridad sobre el Uso de register_globals para más información al respecto.

Por favor note que register_globals no puede ser definido en tiempo de ejecución (ini_set()). Sin embargo, puede usar .htaccess si su servidor huésped lo permite como se describe anteriormente. Un ejemplo de entrada en .htaccess: php_flag register_globals off .

Note: El valor register_globals es afectado por la directiva variables_order.

Warning

This feature is DEPRECATED and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.

register_argc_argv boolean
Le dice a PHP si declarar las variables argv y argc (que contendrían la información de GET). Vea también la documentación sobre la línea de comandos. Asimismo, esta directiva se encuentra disponible desde PHP 4.0.0, y su valor siempre fue "on" anteriormente.
register_long_arrays boolean
Le dice a PHP si debe registrar o no las variables predeterminadas largas tipo $HTTP_*_VARS. Cuando su valor es On (predeterminado), las variables de PHP largas predefinidas como $HTTP_GET_VARS serán definidas. Si no las usa, se recomienda deshablitar esta opción, por razones de rendimiento. En su lugar, use las matrices superglobales, como $_GET. Esta directiva se encuentra disponible a partir de PHP 5.0.0 y fue abandonada en PHP 6.0.0.
post_max_size integer
Define el tamaño máximo permitido de datos enviados mediante el método post. Este parámetro afecta también la carga de archivos. Para cargar archivos grandes, este valor debe ser mayor que upload_max_filesize. Si el límite de memoria es habilitado mediante su script configure, memory_limit afecta también la carga de archivos. En general, memory_limit debería ser mayor que post_max_size . Cuando se usa un número entero, el valor del mismo es medido en bytes. También se puede usar la notación reducida tal como se describe en esta FAQ. Si el tamaño de los datos post es mayor que post_max_size, las variables superglobales $_POST y $_FILES estarán vacías. Esto puede detectarse de varias maneras, p.ej. pasando la variable $_GET al script que procesa los datos, es decir <form action="editar.php?procesado=1">, y luego verificando que $_GET['procesado'] esté definido.
gpc_order string

Define el orden de procesamiento de variables GET/POST/COOKIE. El valor predeterminado de esta directiva es "GPC". Al definir este valor como "GP", por ejemplo, se causará que PHP ignore por completo las cookies y sobrescriba cualquier variables proveniente del método GET con variables del método POST que tengan el mismo nombre.

Note: Esta opción no se encuentra disponible en PHP 4. Use variables_order en su lugar.

auto_prepend_file string

Especifica el nombre de un archivo que es interpretado automáticamente antes del archivo principal. El archivo es incluido como si fuera llamado con la función require(), de modo que se usa el valor de include_path.

El valor especial none deshabilita el preprocesamiento automático.

auto_append_file string

Especifica el nombre de un archivo que es interpretado automáticamente después del archivo principal. El archivo es incluido como si fuera llamado con la función require(), así que el valor de include_path es usado.

El valor especial none deshabilita el procesamiento posterior automático.

Note: Si el script es terminado con exit(), el procesamiento posterior no occurirá.

default_mimetype string

default_charset string

A partir de 4.0.0, PHP siempre imprime de manera predeterminada una codificación de caracteres en la cabecera Content-type:. Para deshabilitar el envío del juego de caracteres, simplemente defina este valor como vacío.

always_populate_raw_post_data boolean

Poblar siempre $HTTP_RAW_POST_DATA, que centiene los datos POST puros. De otra forma, la variable es poblada solamente con los tipos de datos MIME no reconocidos. Sin embargo, el método preferido para acceder a los datos POST puros es php://input. $HTTP_RAW_POST_DATA no se encuentra disponible con enctype="multipart/form-data".

allow_webdav_methods boolean

Permitir el manejo de peticiones WebDAV http al interior de scripts PHP (p.ej. PROPFIND, PROPPATCH, MOVE, COPY, etc.). Esta directiva no existe a la altura de PHP 4.3.2. Si desea obtener los datos enviados desde tales peticiones, tiene que definir always_populate_raw_post_data también.

Vea también: magic_quotes_gpc, magic_quotes_runtime, y magic_quotes_sybase.

Rutas y Directorios

Opciones de Configuración de Rutas y Directorios
Nombre Predeterminado Modificable Cambios
include_path ".;/ruta/hacia/php/pear" PHP_INI_ALL  
doc_root NULL PHP_INI_SYSTEM  
user_dir NULL PHP_INI_SYSTEM  
extension_dir "/ruta/hacia/php" PHP_INI_SYSTEM  
extension NULL php.ini solamente  
cgi.check_shebang_line "1" PHP_INI_SYSTEM Disponible desde PHP 5.2.0.
cgi.fix_pathinfo "1" PHP_INI_SYSTEM Disponible desde PHP 4.3.0. PHP_INI_ALL antes de PHP 5.2.1.
cgi.force_redirect "1" PHP_INI_SYSTEM Disponible desde PHP 4.2.0. PHP_INI_ALL antes de PHP 5.2.1.
cgi.redirect_status_env NULL PHP_INI_SYSTEM Disponible desde PHP 4.2.0. PHP_INI_ALL antes de PHP 5.2.1.
fastcgi.impersonate "0" PHP_INI_SYSTEM Disponible desde PHP 4.3.0. PHP_INI_ALL antes de PHP 5.2.1.
cgi.rfc2616_headers "0" PHP_INI_ALL Disponible desde PHP 4.3.0.

A continuación se presenta una corta explicación de las directivas de configuración.

include_path string

Especifica una lista de directorios en donde las funciones require(), include(), fopen(), file(), readfile() y file_get_contents() buscan archivos. El formato es como aquel de la variable de entorno de sistema PATH: una lista de directorios separada con dos-puntos en Unix o punto-y-coma en Windows.

Example#1 include_path en Unix

include_path=".:/php/includes"

Example#2 include_path en Windows

include_path=".;c:\php\includes"

Mediante el uso de . en la ruta de inclusión es posible definir inclusiones relativas, ya que su valor se traduce como el directorio actual.

doc_root string

El "directorio raíz" de PHP en el servidor. Usado solamente si su valor no es vacío. Si PHP es configurado con safe mode, no se servirán archivos por fuera de este directorio. Si PHP no fue compilado con FORCE_REDIRECT, usted debería definir doc_root en caso de estar usando PHP como CGI bajo cualquier servidor web (diferente a IIS). La alternativa es usar el parámetro de configuración cgi.force_redirect descrito más adelante.

user_dir string

El nombre base del directorio usado en un directorio de usuario para archivos PHP, por ejemplo public_html.

extension_dir string

El directorio en donde PHP ha de buscar por extensiones cargadas dinámicamente. Vea también: enable_dl, y dl().

extension string

Cuáles extensiones de carga dinámica leer cuando PHP inicia.

cgi.check_shebang_line boolean

Controla si PHP CGI verifica la existencia de una línea que comienze con #! (la secuencia conocida como shebang) al inicio del script en ejecución. Esta línea puede necesitarse si el script soporta la ejecución tanto como script independiente como un script CGI. PHP en modo CGI ignora esta línea y su contenido si esta directiva es habilitada.

cgi.fix_pathinfo boolean

Ofrece un soporte real de PATH_INFO/PATH_TRANSLATED para CGI. El comportamiento anterior de PHP era definir PATH_TRANSLATED como SCRIPT_FILENAME, y no producir el valor PATH_INFO. Para más información sobre PATH_INFO, consulte las especificaciones sobre el estándar cgi. Definir este parámetro como 1 causará que el modo CGI de PHP fije su ruta para que cumpla con la especificación. Un valor de cero causa que PHP se comporte como lo hacía anteriormente. El valor predeterminado es cero. Es recomendable que arregle sus scripts para que usen SCRIPT_FILENAME en lugar de PATH_TRANSLATED.

cgi.force_redirect boolean

cgi.force_redirect es necesario para ofrecer seguridad cuando PHP es ejecutado como CGI bajo la mayoría de servidores web. Si no es definido, PHP habilita este parámetro por defecto. Es posible deshabilitarlo bajo su propio riesgo.

Note: Usuarios de Windows: Es posible deshabilitar esta opción para IIS, de hecho, es necesario hacerlo. Para lograr que OmniHTTPD o Xitami funcionen es necesario deshabilitar este parámetro.

cgi.redirect_status_env string

Si cgi.force_redirect se encuentra habilitado, y no está usando servidores web Apache o Netscape (iPlanet), puede que necesite definir un nombre de variable de entorno que PHP use para saber si está bien continuar con la ejecución.

Note: Definir esta variable puede causar problemas de seguridad, asegúrese de saber lo que hace primero.

fastcgi.impersonate string

FastCGI bajo IIS (en un SO basado en WINNT) soporta la habilidad de imitar tokens de seguridad del cliente que hace las peticiones. Esto permite que IIS defina el contexto de seguridad bajo el cual es ejecutada la petición. mod_fastcgi bajo apache no soporta esta característica por el momento (03/17/2002). Defina su valor como 1 si está usando IIS. Su valor predeterminado es cero.

cgi.rfc2616_headers int

Le dice a PHP qué tipo de cabeceras usar cuando envíe los códigos de respuesta HTTP. Si su valor es 0, PHP envía una cabecera Status: que es soportada por Apache y otros servidores web. Cuando esta opción tiene el valor de 1, PHP enviará cabeceras compatibles con el documento » RFC 2616. Deje su valor en 0 a menos que sepa lo que está haciendo.

Carga de Archivos

Opciones de Configuración de Carga de Archivos
Nombre Predeterminado Modificable Cambios
file_uploads "1" PHP_INI_SYSTEM PHP_INI_ALL en PHP <= 4.2.3. Disponible desde PHP 4.0.3.
upload_tmp_dir NULL PHP_INI_SYSTEM  
upload_max_filesize "2M" PHP_INI_PERDIR PHP_INI_ALL en PHP <= 4.2.3.

A continuación se presenta una corta explicación de las directivas de configuración.

file_uploads boolean

Indica si se permite o no la carga de archivos HTTP. Vea también las directivas upload_max_filesize, upload_tmp_dir, y post_max_size.

Cuando se usa un número entero, el valor del mismo es medido en bytes. También se puede usar la notación reducida tal como se describe en esta FAQ.
upload_tmp_dir string

El directorio temporal usado para almacenar archivos cuando se realiza carga de archivos. Debe tener permisos de escritura para el usuario bajo el que PHP es ejecutado. Si no se especifica, PHP usará el valor predeterminado del sistema.

upload_max_filesize integer

El tamaño máximo de un archivo cargado.

Cuando se usa un número entero, el valor del mismo es medido en bytes. También se puede usar la notación reducida tal como se describe en esta FAQ.

SQL General

Opciones Generales de Configuración SQL
Nombre Predeterminado Modificable
sql.safe_mode "0" PHP_INI_SYSTEM  

A continuación se presenta una corta explicación de las directivas de configuración.

sql.safe_mode boolean

Si es habilitado, las funciones de conexión a bases de datos que especifiquen valores predeterminados usarán esos valores en lugar de los argumentos ofrecidos. Para más información sobre los valores predeterminados, vea la documentación de las funciones de conexión de la base de datos relevante.

Directivas de Configuración del Depurador

Caution

Solo PHP 3 implementa un depurador predeterminado, para más información consulte Depuración en PHP.

debugger.host string

Nombre DNS o dirección IP del host usado por el depurador.

debugger.port string

Número de puerto usado por el depurador.

debugger.enabled boolean

Indica si el depurador se encuentra habilitado.


Directivas de php.ini
PHP Manual