Descripción de las directivas internas del php.ini

Esta lista incluye las directivas internas del php.ini que puede definir para personalizar su configuración de PHP. Las directivas gestionadas por las extensiones se enumeran y detallan en las páginas de documentación respectivas de las extensiones; la información sobre las directivas en las sesiones, por ejemplo, se puede encontrar en la página de documentación de las sesiones.

Nota:

Los valores predeterminados enumerados aquí se utilizarán cuando php.ini no se carga; los valores de los archivos php.ini en entornos de producción y desarrollo pueden variar.

Opciones del lenguaje

Opciones de configuración
Nombre Por defecto Cambiable Historial de cambios
short_open_tag "1" INI_ALL  
precision "14" INI_ALL  
serialize_precision "-1" INI_ALL Antes de PHP 7.1.0, el valor predeterminado era 17.
disable_functions "" INI_SYSTEM solo  
disable_classes "" php.ini solo  
exit_on_timeout "" INI_ALL  
expose_php "1" php.ini solo  
hard_timeout "2" INI_SYSTEM Disponible a partir de 7.1.0.
zend.exception_ignore_args "0" INI_ALL Disponible a partir de 7.4.0
zend.multibyte "0" INI_ALL  
zend.script_encoding NULL INI_ALL  
zend.detect-unicode NULL INI_ALL  
zend.signal_check "0" INI_SYSTEM  
zend.assertions "1" INI_ALL con restricciones  
zend.exception_string_param_max_len "15" INI_ALL Disponible a partir de PHP 8.0.0.

He aquí una breve explicación de las directivas de configuración.

short_open_tag bool

Define si las etiquetas cortas de apertura de PHP (<? ?>) están permitidas o no. Si desea usar PHP con XML, debe desactivar esta opción de configuración para poder usar <?xml ?>. De lo contrario, puede escribirlo usando PHP, por ejemplo: <?php echo '<?xml version="1.0">'; ?>. Si esta opción está desactivada, debe usar la versión larga de las etiquetas de apertura de PHP (<?php ?>).

Nota:

Esta directiva no afecta el uso de <?=, que siempre está disponible.

precision int
El número de decimales significativos que se mostrarán en los números de coma flotante. -1 significa que se utilizará el mejor algoritmo para redondear este número.
serialize_precision int
El número de dígitos significativos conservados al serializar números de coma flotante. -1 significa que se utilizará el mejor algoritmo para redondear este número.
expose_php bool

Expone a todos los clientes el hecho de que PHP está instalado en el servidor. Esto incluye la versión de PHP en los encabezados HTTP de la respuesta (X-Powered-By: PHP/5.3.7).

disable_functions string

Esta directiva le permite deshabilitar ciertas funciones. Toma una lista de nombres de funciones separados por comas.

Solo las funciones internas pueden deshabilitarse usando esta directiva. Las funciones definidas por el usuario no se ven afectadas.

Esta directiva debe definirse en el php.ini. Por ejemplo, no puede definirse en el archivo httpd.conf.

disable_classes string
Esta directiva le permite deshabilitar ciertas clases. Toma una lista de nombres de clases separados por comas. Esta directiva debe definirse en el php.ini. Por ejemplo, no puede definirse en el archivo httpd.conf.
zend.assertions int
Cuando se establece en 1, se generará el código de aserción (en modo de desarrollo). Cuando se establece en 0, se generará el código de aserción, pero se ignorará (no se ejecutará) durante la ejecución. Cuando se establece en -1, el código de aserción no se generará, haciendo que las aserciones sean completamente neutrales (en modo de producción).

Nota:

Si un proceso se inicia en modo de producción, zend.assertions no puede cambiarse en tiempo de ejecución, ya que el código para las aserciones no se ha generado.

Si un proceso se inicia en modo de desarrollo, zend.assertions no puede establecerse en -1 en tiempo de ejecución.

zend.exception_string_param_max_len int
La longitud máxima de los argumentos de función de cadenas en los trazas de pila convertidos en cadenas. Debe estar en el rango entre "0" y "1000000".
hard_timeout int

Cuando se alcanza el tiempo de espera establecido en max_execution_time, el tiempo de ejecución de PHP destruirá los recursos de manera elegante. Si algo se bloquea cuando esto ocurre, se activará el tiempo de espera forzado durante el número de segundos establecido. Cuando se alcanza el tiempo de espera forzado, PHP saldrá de manera no elegante. Cuando se establece en 0, el tiempo de espera forzado nunca se activará.

Cuando PHP finaliza con un tiempo de espera forzado, se verá algo así:

Fatal error: Maximum execution time of 30+2 seconds exceeded (terminated) in Unknown on line 0

zend.exception_ignore_args bool

Excluye los argumentos en los trazas de pila generados desde las excepciones.

zend.multibyte bool

Activa el análisis léxico de archivos PHP en codificaciones multibyte. Activar zend.multibyte es necesario para usar ciertas codificaciones de caracteres como SJIS, BIG5, etc., que contienen caracteres especiales en codificación multibyte. Las codificaciones compatibles con ISO-8859-1 como UTF-8, EUC, etc., no requieren esta opción.

Activar zend.multibyte requiere la extensión mbstring.

zend.script_encoding string

Este valor se usará a menos que una directiva declare(encoding=...) aparezca en la parte superior del script. Cuando se usa una codificación incompatible con ISO-8859-1, se deben usar las opciones zend.multibyte y zend.script_encoding.

Las cadenas de caracteres se convertirán desde zend.script_encoding a mbstring.internal_encoding, como si se hubiera llamado a la función mb_convert_encoding().

zend.detect_unicode bool

Verifica el BOM (Byte Order Mark) y mira si el archivo contiene caracteres multibyte válidos. Esta detección se realiza antes de que se ejecute la función __halt_compiler(). Disponible solo en modo multibyte de Zend.

zend.signal_check bool

Verifica si se está utilizando un manejador de señales de reemplazo al detenerse.

exit_on_timeout bool

Esta es una directiva solo para Apache1 mod_php que fuerza a los hilos de Apache a salir si ocurre un tiempo de espera de expiración de PHP. Tal expiración produce internamente una llamada a longjmp() en Apache1 que puede dejar algunas extensiones en un estado no consistente. Al terminar el proceso, todos los bloqueos y la memoria se limpiarán.

Límite de recursos

Opciones de configuración
Nombre Por defecto Cambiable Historial de cambios
memory_limit "128M" INI_ALL  

He aquí una breve explicación de las directivas de configuración.

memory_limit int

Esta opción determina la memoria límite, en bytes, que un script está permitido asignar. Esto evita que un script mal codificado use toda la memoria. Tenga en cuenta que para no tener ningún límite, debe establecer esta directiva en -1.

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.

Véase también: max_execution_time.

Ajuste de rendimiento

Ajuste de rendimiento
Nombre Por defecto Cambiable Historial de cambios
realpath_cache_size "4M" INI_SYSTEM Antes de PHP 7.0.16 y 7.1.2, el valor predeterminado era "16K"
realpath_cache_ttl "120" INI_SYSTEM  

Nota:

Usar open_basedir desactivará la caché realpath.

He aquí una breve explicación de las directivas de configuración.

realpath_cache_size int

Determina el tamaño de la caché de realpath que usará PHP. Este valor debería aumentarse en sistemas donde PHP abre varios archivos, para reflejar la cantidad de operaciones realizadas en los archivos.

El tamaño representa el número total de bytes en la cadena almacenada del camino, más el tamaño de los datos asociados con la entrada de la caché. Esto significa que para almacenar caminos largos en la caché, el tamaño de la caché debe ser lo suficientemente grande. Este valor no controla directamente el número de caminos distintos que pueden almacenarse en caché.

El tamaño necesario para los datos de la entrada de la caché depende del sistema.

realpath_cache_ttl int

Tiempo (en segundos) durante el cual persiste la información de la caché de realpath para un archivo o directorio dado. Para sistemas con archivos que cambian poco, considere aumentar este valor.

Manejo de datos

Opciones de configuración
Nombre Por defecto Cambiable Historial de cambios
arg_separator.output "&" INI_ALL  
arg_separator.input "&" INI_PERDIR  
variables_order "EGPCS" INI_PERDIR  
request_order "" INI_SYSTEM|INI_PERDIR  
auto_globals_jit "1" INI_PERDIR  
register_argc_argv "1" INI_PERDIR  
enable_post_data_reading "1" INI_PERDIR  
post_max_size "8M" INI_PERDIR  
auto_prepend_file NULL INI_PERDIR  
auto_append_file NULL INI_PERDIR  
default_mimetype "text/html" INI_ALL  
default_charset "UTF-8" INI_ALL  
input_encoding "" INI_ALL  
output_encoding "" INI_ALL  
internal_encoding "" INI_ALL  

He aquí una breve explicación de las directivas de configuración.

arg_separator.output string

El separador utilizado cuando PHP genera las URL para separar los argumentos.

arg_separator.input string

Lista de separadores utilizados por PHP para analizar las URL entrantes y deducir los valores.

Nota:

¡Cada carácter de esta directiva se considera un separador!

variables_order string

Define el orden de análisis de las variables EGPCS (Environment, Get, Post, Cookie y Server). Por ejemplo, si variables_order se establece en "SP", entonces PHP creará superglobals $_SERVER y $_POST, pero no creará $_ENV, $_GET y $_COOKIE. Establecer este orden en "" significa que ninguna superglobals se definirá.

Advertencia

En las SAPIs CGI y FastCGI, $_SERVER también se llena con valores del entorno; S siempre es equivalente a ES en lo que respecta a la posición de E en cualquier otro lugar en esta directiva.

Nota:

El contenido y el orden de $_REQUEST también se ven afectados por esta directiva.

request_order string

Esta directiva describe el orden en el que PHP coloca las variables GET, POST y Cookie en la matriz _REQUEST. La colocación se realiza de izquierda a derecha, con los valores más recientes sobrescribiendo los valores más antiguos.

Si esta directiva no está definida, se utiliza variables_order para el contenido de $_REQUEST.

Tenga en cuenta que los archivos php.ini de la distribución predeterminada no contienen 'C' para las cookies, por razones de seguridad.

auto_globals_jit bool

Cuando esta directiva está activada, las variables SERVER, REQUEST y ENV se crean cuando se usan: solo si es necesario. Si estas variables no se usan en un script, el script verá un aumento en el rendimiento.

Advertencia

El uso de las variables SERVER, REQUEST y ENV se verifica durante la compilación. Por lo tanto, usarlas con, por ejemplo, variables dinámicas no provocará su inicialización.

register_argc_argv bool
Le dice a PHP si debe declarar o no las variables argv y argc (que contendrán la información GET). Véase también las líneas de comando.
enable_post_data_reading bool
Si se desactiva esta opción, las variables $_POST y $_FILES no se poblarán. La única forma de leer los datos transmitidos será usando el manejador de flujo php://input. Esto puede ser interesante para las solicitudes a través de un proxy o para analizar los datos transmitidos directamente en la memoria.
post_max_size int
Define el tamaño máximo de los datos recibidos por el método POST. Esta opción también afecta a los archivos cargados. Para cargar archivos grandes, este valor debe ser mayor que el valor de upload_max_filesize. De manera general, memory_limit debe ser mayor que post_max_size. 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. Si el tamaño de los datos recibidos por el método POST es mayor que post_max_size, las superglobales $_POST y $_FILES estarán vacías. Esto se puede monitorear de diferentes formas, por ejemplo, pasando una variable $_GET al script que procesa los datos, es decir, <form action="edit.php?processed=1">, y luego verificar si $_GET['processed'] está definido.

Nota:

PHP permite palabras clave para los bytes, incluyendo K (kilo), M (mega) y G (giga). PHP realiza la conversión automáticamente si usa estas palabras clave. Tenga cuidado de no exceder el límite de un entero con signo de 32 bits (si usa las versiones de 32 bits), en cuyo caso su script fallará.

Historial para post_max_size
Versión Descripción
5.3.4 post_max_size = 0 no desactivará el límite cuando el tipo de contenido es application/x-www-form-urlencoded o no está registrado con PHP.
5.3.2 , 5.2.12 Permite un tamaño de envío ilimitado estableciendo post_max_size en 0.

auto_prepend_file string

Especifica el nombre de un archivo que se recorrerá automáticamente antes del archivo principal. Este archivo se incluye como si se hubiera incluido con la función require, por lo que se usa include_path.

El valor especial none desactiva la adición automática.

auto_append_file string

Especifica el nombre del archivo que se recorrerá automáticamente después del archivo principal. Este archivo se incluye como si se hubiera incluido con la función require, por lo que se usa include_path.

El valor especial none desactiva la adición automática.

Nota: Si el script termina con la función exit(), no se realizará la adición automática.

default_mimetype string

Por defecto, PHP enviará el tipo de medio usando el encabezado Content-Type. Para desactivar esto, deje este valor vacío.

El tipo de medio predeterminado en PHP es text/html.

default_charset string

"UTF-8" es el valor predeterminado y se usa como el conjunto de caracteres predeterminado para las funciones y módulos. PHP siempre enviará un conjunto de caracteres predeterminado para htmlentities(), html_entity_decode() y htmlspecialchars() si se omite el parámetro encoding. El valor de default_charset también se usará para establecer el conjunto de caracteres predeterminado para las funciones iconv si las opciones de configuración iconv.input_encoding, iconv.output_encoding y iconv.internal_encoding no están definidas, y para las funciones mbstring si las opciones de configuración mbstring.http_input, mbstring.http_output y mbstring.internal_encoding no están definidas.

Todas las versiones de PHP usarán este valor como el conjunto de caracteres predeterminado en el encabezado Content-Type predeterminado enviado por PHP si el encabezado no se sobrescribe a través de una llamada a la función header().

No se recomienda establecer un default_charset en un valor vacío.

input_encoding string

Este parámetro se usa para los módulos multibyte como mbstring e iconv. Vacío por defecto.

output_encoding string

Este parámetro se usa para los módulos multibyte como mbstring e iconv. Vacío por defecto.

internal_encoding string

Este parámetro se usa para los módulos multibyte como mbstring e iconv. Vacío por defecto. Si está vacío, se usa default_charset.

Rutas y directorios

Opciones de configuración
Nombre Por defecto Cambiable Historial de cambios
include_path ".;/ruta/a/php/pear" INI_ALL  
open_basedir NULL INI_ALL  
doc_root NULL INI_SYSTEM  
user_dir NULL INI_SYSTEM  
user_ini.cache_ttl "300" INI_SYSTEM  
user_ini.filename ".user.ini" INI_SYSTEM  
extension_dir "/ruta/a/php" INI_SYSTEM  
extension NULL php.ini solo  
zend_extension NULL php.ini solo  
cgi.check_shebang_line "1" INI_SYSTEM  
cgi.discard_path "0" INI_SYSTEM  
cgi.fix_pathinfo "1" INI_SYSTEM  
cgi.force_redirect "1" INI_SYSTEM  
cgi.nph "0" INI_SYSTEM  
cgi.redirect_status_env NULL INI_SYSTEM  
cgi.rfc2616_headers "0" INI_ALL  
fastcgi.impersonate "0" INI_SYSTEM  
fastcgi.logging "1" INI_SYSTEM  

He aquí una breve explicación de las directivas de configuración.

include_path string

Especifica una lista de directorios donde las funciones require, include, fopen(), file(), readfile() y file_get_contents() buscarán los archivos. El formato es idéntico a la variable de entorno del sistema PATH: una lista de directorios separados por dos puntos (:) en Unix o por un punto y coma (;) en Windows.

PHP considera cada entrada del camino de inclusión por separado al buscar archivos para incluir. Verificará el primer camino y, si no encuentra el archivo, verificará el siguiente camino, hasta encontrar el archivo para incluir o devolver una alerta de tipo E_WARNING o de tipo E_ERROR usando la función set_include_path().

Ejemplo #1 include_path en Unix

include_path=".:/php/includes"

Ejemplo #2 include_path en Windows

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

El uso de un punto (.) en el camino de inclusión le permite hacer inclusiones relativas al directorio actual. Sin embargo, es más eficiente incluir explícitamente un archivo con include './file' que pedirle a PHP que verifique el directorio actual en cada inclusión.

Nota:

Las variables ENV también están disponibles en los archivos .ini. Por lo tanto, es posible hacer referencia al directorio home usando la sintaxis ${LOGIN} y ${USER}.

Las variables de entorno pueden variar según las APIs del servidor, así como según los entornos.

Ejemplo #3 include_path en Unix usando la variable de entorno ${USER}

include_path = ".:${USER}/pear/php"

open_basedir string

Limita los archivos que pueden ser accedidos por PHP a una estructura de directorios específica, incluyendo el archivo mismo.

Cuando un script intenta acceder a un archivo con, por ejemplo, la función include o la función fopen(), la ruta al archivo se analiza. Cuando el archivo se encuentra fuera de la estructura de directorios especificada, PHP se negará a acceder a él. Todos los enlaces simbólicos se resuelven, por lo que no es posible eludir esta restricción con un enlace simbólico. Si el archivo no existe, entonces el enlace simbólico no se puede resolver y el nombre del archivo se compara con open_basedir.

La opción open_basedir puede afectar más que las funciones del sistema de archivos; por ejemplo, si MySQL está configurado para usar el controlador mysqlnd, LOAD DATA INFILE se verá afectado por la opción open_basedir. La mayoría de las extensiones de PHP usan la opción open_basedir de esta manera.

El valor especial . indica que se usará el directorio actual del script como directorio base. Sin embargo, esto es ligeramente peligroso en el sentido de que el directorio actual puede cambiarse fácilmente con la función chdir().

En el archivo httpd.conf, open_basedir puede desactivarse (por ejemplo, para algunos hosts virtuales) de la misma manera que cualquier directiva de configuración con "php_admin_value open_basedir none".

En Windows, separe los directorios con un punto y coma. En todos los demás sistemas, separe los directorios con dos puntos. Al usar Apache como módulo, los caminos de open_basedir desde los directorios padres ahora se heredan automáticamente.

La restricción especificada con open_basedir es un nombre de directorio, no un prefijo.

De manera predeterminada, todos los archivos pueden abrirse.

Nota: open_basedir puede afinarse en el momento de la ejecución. Esto significa que si open_basedir se establece en /www/ en el archivo php.ini, un script puede afinar la configuración en /www/tmp/ en el momento de la ejecución usando la función ini_set(). Al recorrer varios directorios, puede usar la constante PATH_SEPARATOR según el sistema operativo. A partir de PHP 8.3.0, open_basedir ya no acepta rutas que contengan el directorio padre (..) cuando se establece en tiempo de ejecución.

Nota:

Usar open_basedir establecerá realpath_cache_size a 0 y, por lo tanto, desactivará la caché realpath.

Precaución

open_basedir es solo una medida de protección adicional y no es de ninguna manera exhaustiva, y no debe dependerse de ella cuando se necesita seguridad.

doc_root string

El directorio raíz de PHP en el servidor. Solo se usa si no está vacío. Si PHP no se compiló con FORCE_REDIRECT, debe definir el doc_root si usa PHP como CGI bajo cualquier servidor web (distinto de IIS). Alternativamente, puede usar la configuración cgi.force_redirect.

user_ini.cache_ttl int

user_ini.filename string

user_dir string

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

extension_dir string

Especifica el directorio donde PHP debe buscar extensiones externas para cargar. Se recomienda especificar una ruta absoluta. Véase también enable_dl y dl().

extension string

Qué extensiones deben cargarse dinámicamente al iniciar PHP.

zend_extension string

Nombre de la extensión Zend cargable dinámicamente (por ejemplo, XDebug) que se cargará al iniciar PHP.

cgi.check_shebang_line bool

Controla si PHP CGI verifica la línea que comienza con #! (shebang) en la parte superior del script ejecutado. Esta línea es necesaria si el script está destinado a ejecutarse de forma independiente y a través de un PHP CGI. PHP en modo CGI no lee esta línea y omite su contenido si esta directiva está activa.

cgi.discard_path bool

Si está activado, el binario PHP CGI puede colocarse fuera del árbol web de manera segura y las personas no podrán eludir la seguridad .htaccess.

cgi.fix_pathinfo bool

Proporciona un real PATH_INFO/PATH_TRANSLATED para CGI. El comportamiento anterior de PHP era establecer PATH_TRANSLATED en SCRIPT_FILENAME y no llenar PATH_INFO. Para obtener más información sobre PATH_INFO, consulte las especificaciones CGI. Si se establece en 1, PHP CGI corregirá este camino según las especificaciones. Si se establece en 0, PHP aplicará el comportamiento anterior. De manera predeterminada, esta directiva está activada. Debe modificar sus scripts para usar SCRIPT_FILENAME en lugar de PATH_TRANSLATED.

cgi.force_redirect bool

cgi.force_redirect es necesario por razones de seguridad al usar PHP en modo CGI bajo la mayoría de los servidores web. Si no lo establece, PHP lo activará automáticamente de manera predeterminada. Puede desactivarlo bajo su propio riesgo.

Nota:

Usuarios de Windows: Al usar IIS, esta opción debe desactivarse; lo mismo ocurre con OmniHTTPD y Xitami.

cgi.nph bool

Si cgi.nph está activado, forzará a CGI a enviar siempre el estado: 200 con cada solicitud.

cgi.redirect_status_env string

Si cgi.force_redirect está activado y no está ejecutando un servidor web Apache o Netscape (iPlanet), debería definir un nombre de variable de entorno que PHP usará para verificar si todo está correcto para continuar la ejecución.

Nota:

Definir esta variable puede tener consecuencias de seguridad. Saber lo que hace antes de hacerlo.

cgi.rfc2616_headers bool

Le dice a PHP qué tipo de encabezado usar al enviar el código de respuesta HTTP. Si está desactivado, PHP enviará un encabezado "Status:" (» RFC 3875) que es compatible con Apache y otros servidores web. Cuando está activado, PHP enviará un encabezado que cumple con la especificación » RFC 2616.

Si esta opción está activada y está ejecutando PHP en un entorno CGI (por ejemplo, PHP-FPM), no debe usar los encabezados de respuesta HTTP "status" RFC 2616, sino usar el equivalente RFC 3875, es decir, en lugar del encabezado ("HTTP/1.0 404 Not found"), use ("Status: 404 Not Found").

Deje este parámetro desactivado a menos que sepa exactamente lo que está haciendo.

fastcgi.impersonate bool

FastCGI en IIS (en sistemas operativos basados en WINNT) admite la capacidad de determinar la marca de seguridad del cliente que llama. Esto permite que IIS establezca el contexto de seguridad en el que se ejecutará la solicitud. mod_fastcgi en Apache no admite actualmente esta funcionalidad (03/17/2002). Active si se ejecuta en IIS. De manera predeterminada, está desactivado.

fastcgi.logging bool

Activa el registro SAPI con FastCGI. Activado de manera predeterminada.

Carga de archivos

Opciones de configuración
Nombre Por defecto Cambiable Historial de cambios
file_uploads "1" INI_SYSTEM  
upload_tmp_dir NULL INI_SYSTEM  
max_input_nesting_level 64 INI_PERDIR  
max_input_vars 1000 INI_PERDIR  
upload_max_filesize "2M" INI_PERDIR  
max_file_uploads 20 INI_PERDIR  

He aquí una breve explicación de las directivas de configuración.

file_uploads bool

Permite o no la carga de archivos por HTTP. Véase también las directivas upload_max_filesize, upload_tmp_dir y post_max_size.

upload_tmp_dir string

El directorio temporal usado para almacenar archivos durante la carga. El usuario bajo el cual se ejecuta PHP debe tener permisos de escritura en este directorio. Si no se especifica, PHP usará el directorio temporal predeterminado del sistema.

Si el directorio especificado aquí no es accesible en escritura, PHP recurrirá al directorio temporal predeterminado del sistema. Si open_basedir está activado, entonces el directorio temporal predeterminado del sistema debe estar permitido para que la carga de archivos funcione.

upload_max_filesize int

El tamaño máximo en bytes de un archivo subido.

post_max_size debe ser mayor que este valor.

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.
max_file_uploads int

El número máximo de archivos que pueden enviarse simultáneamente. Los campos de carga que se dejan vacíos al enviar no se cuentan en el cálculo de este límite.

SQL general

Opciones de configuración
Nombre Por defecto Cambiable Historial de cambios
sql.safe_mode "0" INI_SYSTEM Eliminado a partir de PHP 7.2.0

He aquí una breve explicación de las directivas de configuración.

sql.safe_mode bool

Si está activado, las funciones de conexión a la base de datos que especifican valores predeterminados usarán estos valores en lugar de los argumentos proporcionados. Para los valores predeterminados, consulte la documentación de las funciones de conexión para la base de datos correspondiente.

Advertencia

¡Esta funcionalidad ha sido ELIMINADA a partir de PHP 7.2.0!

Específico de Windows

Opciones de configuración específicas de Windows
Nombre Por defecto Cambiable Historial de cambios
windows.show_crt_warning "0" INI_ALL  

He aquí una breve explicación de las directivas de configuración.

windows.show_crt_warning bool

Esta directiva muestra las advertencias de CRT de Windows cuando está activada.

add a note

User Contributed Notes 8 notes

up
19
luisdev
4 years ago
https://haydenjames.io/understanding-php-memory_limit/ explains the memory_limit setting nicely.
up
10
Simone Pellegatta
4 years ago
Be careful while using auto_prepend_file.

When the custom exception handler, set by set_exception_handler(), handles an uncaught exception, it interrupts the execution of every script.

If the script with the unhandled exception has been automatically prepended or included by an automatically prepended script, however, the main script will continue running anyway.

This could cause several issues: when we think that throwing an exception would automatically interrupt the current application, a whole chunk of code is going to run anyway.
up
3
diamondeagle at webmail dot co dot za
5 years ago
Note regarding the upload_tmp_dir setting and UNC Paths:

When using PHP on Windows OS and IIS FastCGI, if you need to use a UNC path to a folder on a network drive for the upload_tmp_dir setting then you must use three \ characters at the front of the UNC path.

Windows and PHP use the first slash as an escape character, so if you only use two slashes then it passes a UNC path with just one backslash. That is not valid for UNC paths and you many experience problems when uploading files, such as errors saying that "PHP is missing a temporary folder".

Correct:
upload_tmp_dir = "\\\path\to\your\folder"

Incorrect:
upload_tmp_dir = "\\path\to\your\folder"
up
2
leo at korfu dot cz
18 years ago
"If the size of post data is greater than post_max_size..."

It seems that a more elegant way is comparison between post_max_size and $_SERVER['CONTENT_LENGTH']. Please note that the latter includes not only size of uploaded file plus post data but also multipart sequences. Leo
up
0
fernandobasso dot br at gmail dot com
8 years ago
This might help in case someone happens to maintain old applications with a charset other than utf-8.

According to the docs, you can override the default charset if you use `header()`.

Suppose php.ini sets the default_charset to "UTF-8", but you need a legacy charset, like ISO-8859-1.

Still,

<?php header('Content-Type: text/html; Charset=ISO-8859-1'); ?>

would not override the charset, just add it as well and the result
was a response header like (note the two charsets):

Content-Type:"text/html; Charset=ISO-8859-1;charset=UTF-8"

I found it strange the default one as `charset` with a lowercase `c`
as opposed to my custom charset with an uppercase `C`.

What solved was to _override_ the charset using all lowercase letters
as well for the word “charset”:

<?php header('content-type: text/html; charset=ISO-8859-1'); ?>

Then, the double charset from the response headers disappeared, and only the single, custom charset remained.
up
-2
andre dot wetter at myelco dot ch
3 years ago
If you use Microsoft IIS Windows and want to use open_basedir restrictions with multiple dirs you have to set them into single quotes in the main config xml file of IIS (C:\Windows\System32\inetsrv\config\applicationHost.config). Works fine in IIS 10.

Multiple files with single quotes and ; for windows:
"C:\php\php-cgi.exe|-d open_basedir='C:\Windows\Temp\;D:\mywebsite1\'"

Only one dir works fine without single quotes:
"C:\php\php-cgi.exe|-d open_basedir=D:\mywebsite1\"

In my main config xml file of IIS there are 2 nodes to set per website and the definitions have to be equal:
configuration\Location\system.webServer\handlers\add
configuration\system.webServer\fastCgi
up
-4
Anton Bannikov
4 years ago
I had a problem with 'open_basedir =' string in php.ini. This string was writtren in VirtualHost Directory directive of Apache2 and successfully rewrote the same php.ini setting! It happened with VestaCP, but I think, it's a common way. Goog luck!
up
-2
gcb@
8 months ago
you get a misleading error if a directory doesn't exist or the user lacks permission to access it.

open_basedir restriction in effect. File(/tmp/php_session) is not within the allowed path(s): /tmp/php_session
To Top