auto_globals_jit setting is also affecting $_REQUEST superglobal in 5.3 It is not explicitly stated in documentation.
Descripción de las directivas del núcleo de php.ini
Esta lista incluye las directivas del núcleo de php.ini que se pueden establecer para la configuración de PHP. Las directivas para extensiones están listadas y detalladas en las páginas de la documentación de las extensiones. La información sobre las directivas de sesión, por ejemplo, pueden ser encontradas en la página de sesiones.
Opciones Httpd
| Nombre | Por defecto | Cambiable | Historial de cambios |
|---|---|---|---|
| async_send | "0" | PHP_INI_ALL |
Opciones de lenguaje
| Nombre | Por defecto | Cambiable | Historial de cambios |
|---|---|---|---|
| short_open_tag | "1" | PHP_INI_ALL | PHP_INI_ALL en PHP 4.0.0. PHP_INI_PERDIR en PHP < 5.3.0 |
| asp_tags | "0" | PHP_INI_PERDIR | PHP_INI_ALL en PHP 4.0.0. |
| precision | "14" | PHP_INI_ALL | |
| serialize_precision | "17" | PHP_INI_ALL | Disponible desde PHP 4.3.2. hasta PHP 5.3.5, el valor por defecto era 100. |
| y2k_compliance | "1" | PHP_INI_ALL | Eliminado en PHP 5.4.0. |
| allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | PHP_INI_ALL en PHP en 4.0.0. Eliminado en PHP 5.4.0. |
| disable_functions | "" | Solo en php.ini | Disponible desde PHP 4.0.1. |
| disable_classes | "" | Solo en php.ini | Disponible desde PHP 4.3.2. |
| exit_on_timeout | "" | INI_ALL | Disponible desde PHP 5.3.0. |
| expose_php | "1" | Sólo en php.ini | |
| zend.multibyte | "0" | PHP_INI_ALL | Disponible desde PHP 5.4.0 |
| zend.script_encoding | NULL | PHP_INI_ALL | Disponible desde PHP 5.4.0 |
| zend.signal_check | "0" | PHP_INI_SYSTEM | Disponible desde PHP 5.4.0 |
| zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | Disponible desde PHP 5.0.0. Removed in PHP 5.3.0 |
| detect_unicode | "1" | PHP_INI_ALL | Disponible desde PHP 5.1.0. Esta característica obsoleta será eliminada con certeza en el futuro. |
He aquí una breve explicación de las directivas de configuración.
-
short_open_tagboolean -
Indica a PHP si las etiquetas cortas (
<? ?>) de apertura de PHP están activadas. Si quiere utilizar PHP en combinación con XML, puede desactivar esta opción para poder usar<?xml ?>. Si no, puede usar PHP para mostrar xml, por ejemplo<?php echo '<?xml version="1.0"?>'; ?>. Si por lo contrario está desactivado, debe usar siempre la forma larga de abrir la etiqueta PHP (<?php ?>).Nota:
Esta directiva también afecta el código
<?=en versiones anteriores a PHP 5.4.0, que es lo mismo que<? echo. El uso de esta forma corta requería queshort_open_tagesté activo. Desde PHP 5.4.0,<?=siempre está disponible. - Activa el uso de las etiquetas igual que ASP <% %> además de las normales <?php ?>. Esto incluye la forma corta variable-valor <%= $value %>. Para más información vea Escapando de HTML.
-
precisioninteger - El número de dígitos significativos que se muestran en números de punto flotante.
-
serialize_precisioninteger - El número de dígitos significativos almacenados durante la serialización en números de punto flotante.
-
y2k_complianceboolean - Asegura la compatibilidad con el año 2000 (causará problemas con navegadores no compatibles)
-
allow_call_time_pass_referenceboolean -
Sirve para indicar cuando se pasan argumentos por referencia en el momento que se llama a la función. Se recomienda especificar cuando los argumentos son pasados por referencia en la declaración de la función. Le animamos a que desactive esta opción (Off) para asegurarse de que sus scripts funcionarán en futuras versiones del lenguaje. (si está desactivada se mostrará un warning cada vez que utilice esta opción).
Pasar argumentos por referencia en el momento que se llama a la función quedó obsoleto por razones de limpieza en el código. La función puede usar argumentos por referencia sin tener que indicarlo. Pero para prevenir efectos secundarios es mejor especificar que los argumentos son pasados por referencia solamente en la declaración de la función.
Véase también Explicando las referencias.
-
expose_phpboolean -
Expone al mundo que PHP se ha instalado en el servidor, que incluye la versión de PHP en la cabecera HTTP (p.e.j, X-Powered-By: PHP/5.3.7). El logo PHP también está expuesto, por lo tanto añadiendo a la URL de un sitio PHP habilitado mostrará el logotipo correspondiente (p.e.j, » http://www.php.net/?=PHPE9568F34-D428-11d2-A769-00AA001ACF42). Esto también afecta la salida de phpinfo(), como cuando está desactivado, el logotipo de PHP y la información de los créditos no se mostrará.
See also php_logo_guid() and phpcredits().
Registro de cambios de allow_call_time_pass_reference Versión Descripción 5.4.0 Eliminado de PHP. 5.3.0 Emite un nivel de error E_DEPRECATED.5.0.0 obsoleto, y genera un nivel de error E_COMPILE_WARNING. -
disable_functionsstring -
Esta directiva permite desactivar ciertas funciones por razones de seguridad. Hace falta delimitar con comas el nombre de las funciones. disable_functions no afecta el Safe Mode.
Solamente las funciones internas pueden ser desactivadas usando esta directiva. Las Funciones definidas por el Usuario no son afectadas.
Esta directiva debe ser establecida en el php.ini Por ejemplo, no se puede establecer en httpd.conf.
-
disable_classesstring -
Esta directiva permite desactivar ciertas clases por razones
de seguridad. Hace falta delimitar
con comas el nombre de las clases. disable_classes
no es afectado por Safe Mode.
This directive must be set in php.ini For example, you
cannot set this in httpd.conf.
Esta directiva debe ser establecida en el php.ini Por ejemplo,
no puede ser establecida en httpd.conf.
Nota: Availability note
Esta directiva se encuentra disponible en PHP 4.3.2 -
zend.ze1_compatibility_modeboolean -
Activa el modo de compatibilidad con Zend Engine 1 (PHP 4). Esto afecta a la clonación, conversión, (objectos sin propiedades son convertidos a
FALSEo 0), y comparación de objetos. En este modo, los objetos son pasados por valor en lugar de por referencia por defecto.Ver también la sección titulada Migrando de PHP 4 a PHP 5.
AdvertenciaEsta característica ha quedado OBSOLETA y fue REMOVIDA a partir de PHP 5.3.0.
-
zend.multibyteboolean -
Permite el análisis de archivos de código fuente en codificaciones multibyte.
-
zend.script_encodingstring -
Este valor será usado a menos que una directiva declare(encoding=...) aparezca al principio del script.
-
zend.signal_checkboolean -
Para verficar gestores de señales remplazados en el cierre.
-
detect_unicodeboolean -
Comprueba el BOM (Byte Order Mark) y mira si el fichero contiene caracteres multibyte válidos. La detección se hace antes del proceso de __halt_compiler(). Está disponible solamente en Zend modo multibyte.
-
exit_on_timeoutboolean -
Esta es una directiva mod_php-only Apache1 que fuerza un hijo Apache a salir si el tiempo de ejecución de PHP se produjo. Este tiempo de espera provoca una llamada longjmp() interna en Apache1 que puede dejar algunas extensiones en un estado de incoherencia. Al terminar los procesos algunos bloqueos pendientes o la memoria será limpiada.
Límite de recursos
| Nombre | Por defecto | Cambiable | Historial de cambios |
|---|---|---|---|
| memory_limit | "128M" | PHP_INI_ALL | "8M" antes de PHP 5.2.0, "16M" en PHP 5.2.0 |
He aquí una breve explicación de las directivas de configuración.
-
memory_limitinteger -
Establece el máximo de memoria en bytes que un script puede consumir. Ayuda a prevenir que scripts mal programados consuman toda la memoria disponible en el servidor. Nota para no tener límite de memoria, establezca esta directiva a -1.
En versiones anteriores a PHP 5.2.1, para usar esta directiva se tenía compilar php usando la opción --enable-memory-limit . Esta flag en tiempo de ejecucción también era requerida para definir las funciones memory_get_usage() y memory_get_peak_usage() en versiones anteriores a PHP 5.2.1.
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.
Mejoras de rendimiento
| Nombre | Por defecto | Cambiable | Historial 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. |
He aquí una breve explicación de las directivas de configuración.
-
realpath_cache_sizeinteger -
Determina el tamaño de la caché de realpath que va a ser usada por PHP. Este valor debe ser incrementado en sistemas donde PHP abre muchos ficheros, para reflejar la cantidad de operaciones realizadas con ficheros.
-
realpath_cache_ttlinteger -
Duración en tiempo (en segundos) para cachear la información del realpath para un determinado fichero o directorio. Para sistemas que raramente cambian ficheros, considere incrementar este valor.
Uso de datos
| Nombre | Por defecto | Cambiable | Historial de 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. |
| request_order | "" | PHP_INI_PERDIR | Disponible desde PHP 5.3.0 |
| 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. Eliminado en PHP 5.4.0. |
| 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. Obsoleto en PHP 5.3.0. Eliminado en PHP 5.4.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 |
He aquí una breve explicación de las directivas de configuración.
-
track_varsboolean -
si está activado, las variables de entorno, GET POST, Cookie y variables de servidor pueden encontrarse en los siguientes arrays asociativos globales $_ENV, $_GET, $_POST, $_COOKIE, y $_SERVER.
Note que desde PHP 4.0.3,
track_varssiempre está activado. -
arg_separator.outputstring -
El separador usado en PHP para separar argumentos en URLs generadas.
-
arg_separator.inputstring -
Lista de separador(es) usados por PHP para convertir datos de URLs en variables.
Nota:
¡Atención: cada caracter en esta directiva es considerado como separador!
-
variables_orderstring -
Establece el orden de interpretación de variables EGPCS (Entorno, Get, Post, Cookie, and Server). Por ejemplo, si variables_order es "SP" entonces PHP creará superglobals $_SERVER y $_POST, pero no creará $_ENV, $_GET, y $_COOKIE. Si lo asiganmos "" las variables superglobals no estarán disponibles.
Si la directiva obsoleta register_globals está activada, entonces variables_order también configura el orden de las variables ENV, GET, POST, COOKIE y SERVER y están disponibles de forma global. Por ejemplo si variables_order está establecido a "EGPCS", register_globals está activado, y los dos $_GET['action'] y $_POST['action'] existen, entonces $action contendrá el valor de $_POST['action'] como P viene después de G en el ejemplo que mostramos.
AdvertenciaEn los dos casos CGI y FastCGI SAPI, $_SERVER también es complimentado con los valores de entorno; S siempre es equivalente a ES a pesar de la posición de E en cualquier otro lugar en la directiva.
Nota:
El contenido y el orden de $_REQUEST también es afectado por esta directiva.
-
request_orderstring -
Esta directiva describe el orden en que PHP registra las variables GET, POST y Cookie en el array _REQUEST. El registro se hace de izquierda a derecha, los nuevos valores reemplazan los valores más antiguos.
Si esta directiva no está definida, variables_order se usa para el contenido de $_REQUEST.
Observe que la distribución por defecto de los ficheros php.ini no contienen 'C' para cookies, por motivos de seguridad.
-
auto_globals_jitboolean -
Cuando está activado, las variables SERVER y EVN son creadas la primera vez que se necesitan (justo a tiempo) en lugar de crearse cuando el script empieza. Si estas variables no son usadas cuando empieza el script, esta directiva afectará a la mejora del rendimiento.
Las directivas PHP register_globals, register_long_arrays, y register_argc_argv deben estar desactivadas para que esta directiva tenga efecto. Desde PHP 5.1.3 no es necesario tener register_argc_argv desactivado.
AdvertenciaEl uso de las variables SERVER y ENV se comprueba durante el tiempo de ejecucción, quiere decir que usándolas vía por ejemplo: variable variables no causará su inicialización.
-
register_globalsboolean -
Registre o no registre las variables EGPS (Entorno, GET, POST, Cookie, Server) son globales.
En » PHP 4.2.0, esta directiva está por defecto off.
Para información relacionada por favor lea el capítulo de seguridad en Usando register_globals.
Por favor, note que
register_globalsno puede ser definido en tiempo de ejecucción (ini_set()). Aún así, puede usar .htaccess si el servidor se lo permite, tal como se muestra debajo. Un ejemplo de entrada .htaccess:php_flag register_globals off.Nota:
register_globalses afectado por la directiva variables_order.AdvertenciaEsta característica ha sido declarada OBSOLETA desde PHP 5.3.0. Su uso está totalmente desaconsejado.
-
register_argc_argvboolean - Indica a PHP cuando declarar las variables argv & argc (que pueden que contengan información de GET). Véase también command line.
-
register_long_arraysboolean -
Indica a PHP cuando o no registrar las obsoletas variables
predefinidas del tipo $HTTP_*_VARS
Cuando esté activado, variables largas como
$HTTP_GET_VARS estarán definidas.
Si no las utiliza, se recomienda desactivarlas, por razones
de rendimiento. En su lugar, puede usar las Arrays superglobales,
como $_GET.
Esta directiva empezó a estar disponible en PHP 5.0.0.
Advertencia
Esta característica ha sido declarada OBSOLETA desde PHP 5.3.0. Su uso está totalmente desaconsejado.
-
enable_post_data_readingboolean - Al deshabilitar esta opción hace que $_POST y $_FILES no sean rellenados. La única manera de leer información de POST será a través de la envoltura de flujos php://input. Esto puede ser útil en peticiones proxy o para procesar los datos de POST de una manera efeciente de memoria.
-
post_max_sizeinteger -
Define el tamaño máximo de datos post permitidos. Esta opción
también afecta a la subida de ficheros. Para poder subir ficheros grandes, este valor de ser mayor
que upload_max_filesize.
Si el límite de memoria está activado en su script de configuración, memory_limit también afecta
la subida de ficheros. Por norma general,
memory_limit debe 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 del post son más grandes que post_max_size, las superglobales $_POST y $_FILES estarán vacías. Esto puede ser descubierto de varias maneras, por ejemplo pasando una variable $_GET del script que se está procesando, ejemplo: <form action="edit.php?processed=1">, y luego comprobar si la variable $_GET['processed'] existe.Nota:
PHP acepta abreviaturas para algunos valores, incluyendo K (kilo), M (mega) y g (giga). PHP hará las conversión automaticamente si utiliza cualquiera de estas abreviaturas. Tenga cuidad de no execeder enteros más de 32 bits (si está usando veriones 32bits) esto causará que su script falle.
-
gpc_orderstring -
Establece el orden en que se interpretan las variables GET/POST/COOKIE. Por defecto esta directiva está establecida a "GPC". Si la cambia a "GP", por ejemplo, causará que PHP ignore cookies y sobreescriba cualquier variable del método GET con el mismo nombre en la variable del método POST.
Nota:
Esta opción no está disponible en PHP 4. Utilice variables_order en su lugar.
-
auto_prepend_filestring -
Especifica el nombre del fichero que será automaticamente interpretado antes del fichero principal. El fichero es incluido como si fuera llamado con la función require, include_path es usado.
El valor especial none desactiva el auto-prepending.
-
auto_append_filestring -
Nombre del fichero que será automaticamente interpretado después del fichero principal. El fichero es incluido como si fuera llamado con la función require, include_path es usado.
The special value none disables auto-appending.
Nota: Si el script finaliza con exit(), auto-append no será ejecutado.
-
default_mimetypestring -
-
default_charsetstring -
PHP siempre muestra el tipo de encoding por defecto en Content-type, en el encabezado. Para desactivar el charset simplemente deje el parámetro vacío.
-
always_populate_raw_post_databoolean -
Rellena la variable $HTTP_RAW_POST_DATA con el contenido crudo de los datos POST. Sino, la variable contendrá solamente tipos de datos MIME no reconocidos. De cualquier forma, la mejor forma de acceder a los datos crudos de POST es vía php://input $HTTP_RAW_POST_DATA no está disponible con datos enctype="multipart/form-data".
-
allow_webdav_methodsboolean -
Permite aceptar peticiones http WebDAV en scripts PHP (ej: PROPFIND, PROPPATCH, MOVE, COPY, etc.). Esta directiva no existe a partir de PHP 4.3.2. Si quiere obtener los datos post de estas peticiones, debe activar también always_populate_raw_post_data.
Véase también: magic_quotes_gpc, magic_quotes_runtime, y magic_quotes_sybase.
Rutas y directorios
| Nombre | Por defecto | Cambiable | Historial de cambios |
|---|---|---|---|
| include_path | ".;/path/to/php/pear" | PHP_INI_ALL | |
| open_basedir | NULL | PHP_INI_ALL | PHP_INI_SYSTEM en PHP < 5.3.0 |
| doc_root | NULL | PHP_INI_SYSTEM | |
| user_dir | NULL | PHP_INI_SYSTEM | |
| extension_dir | "/path/to/php" | PHP_INI_SYSTEM | |
| extension | NULL | Solo en php.ini | |
| zend_extension | NULL | Solo en php.ini | |
| zend_extension_debug | NULL | Solo en php.ini | Disponible antes de PHP 5.3.0. |
| zend_extension_debug_ts | NULL | Solo en php.ini | Disponible antes de PHP 5.3.0. |
| zend_extension_ts | NULL | Solo en php.ini | Disponible antes de PHP 5.3.0. |
| 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. |
| cgi.rfc2616_headers | "0" | PHP_INI_ALL | Disponible desde PHP 4.3.0. |
| fastcgi.impersonate | "0" | PHP_INI_SYSTEM | Disponible desde PHP 4.3.0. PHP_INI_ALL antes de PHP 5.2.1. |
| fastcgi.logging | "1" | PHP_INI_SYSTEM | Disponible desde PHP 4.3.0. PHP_INI_ALL antes de PHP 5.2.1. |
He aquí una breve explicación de las directivas de configuración.
-
include_pathstring -
Especifica la lista de directorios donde las funciones require, include, fopen(), file(), readfile() y file_get_contents() buscan por ficheros. El formato es como la variable de sistema PATH variable de entorno: lista de directorios separados por dos puntos en Unix o separados por punto y coma en Windows.
PHP busca en cada entrada del include path cuando está buscando ficheros a incluir. Primero buscará en la primera ruta, y si no lo encuentra ahí, buscará en la siguiente, hasta que encuentre el fichero o devuelva un warning o un error. Quizá quiera modificar su include path en tiempo de ejecucción usando set_include_path().
Ejemplo #1 Unix include_path
include_path=".:/php/includes"
Ejemplo #2 Windows include_path
include_path=".;c:\php\includes"
El uso de . en el include path permite el uso de includes relativos y significa el directorio actual. De todas formas, es más eficiente usar explícitamente el include './file' que hacer a PHP comprobar el directorio actual para cada include.
-
open_basedirstring -
Límite de ficheros que pueden ser abiertos por PHP en el especificado árbol del directorio, incluyendo el fichero así mismo. Esta directiva NO es afectada cuando Safe Mode está On o Off.
Cuando un script intenta abrir un fichero, con por ejemplo, fopen() o gzopen(), se comprueba la localización del fichero. Si el fichero está fuera del directorio especificado, PHP se negará abrirlo. Todos los enlaces simbólicos son resueltos, entonces no es posible omitir esta restricción usando enlaces simbólicos. Si el fichero no existe el enlace simbólico no podrá ser resuelto y el nombre del fichero es comparado o resuelto a open_basedir .
El valor especial
.indica que el directorio de trabajo del script será usado como directorio base. Esto es, sin embargo, un poco peligroso ya que el directorio del script puede ser fácilmente cambiado con la función chdir().En httpd.conf, open_basedir se puede desactivar (ej. para algunos virtual hosts) de la misma manera que cualquier otra directiva de configuración con "php_admin_value open_basedir none".
Bajo Windows, separe los directorios con punto y coma. En cualquier otro sistema, separe los directorios con dos puntos. Como en el módulo Apache, las rutas de los directorios principales de open_basedir heredan automáticamente.
La restricción especificada en open_basedir es un nombre de directorio desde PHP 5.2.16 y 5.3.4. Las versiones anteriores lo usaron como un prefijo. Esto quiere decir que "open_basedir = /dir/incl" también tiene acceso a "/dir/include" y "/dir/incls si es que existen. Cuando quiera restringir el acceso solamente a un directorio específico, finalícelo con una barra. Por ejemplo: open_basedir = /dir/incl/
Por defecto permite a abrir cualquier tipo de ficheros.
Nota:
A partir de PHP 5.3.0 open_basedir puede ser usado en tiempo de ejecución. Esto significa que si open_basedir está establecido como /www/ en php.ini un script puede cambiar la configuración en tiempo de ejecución a /www/tmp/ con ini_set(). Cuando se enumeran varios directorios, se puede usar la constante
PATH_SEPARATORcomo separador, independientemente del sistema operativo. -
doc_rootstring -
"Directorio raíz" de PHP en el servidor. En uso solamente si no está vacío. Si PHP está configurado con safe mode, ningún otro fichero fuera de este directorio será servido. Si PHP no se compiló con FORCE_REDIRECT, debería establecer doc_root si está usando PHP como GCI bajo cualquier tipo de servidor (que no sea IIS). La alternativa es usar cgi.force_redirect vea la configuración a continuación.
-
user_dirstring -
Nombre del directorio base usado en el directorio principal del usuario para ficheros PHP, por ejemplo public_html .
-
extension_dirstring -
En que directorio PHP debería buscar por extensiones que se pueden cargar dinámicamente. Vea también: enable_dl, y dl().
-
extensionstring -
Que extensiones se cargarán dinámicamente cuando se inicie PHP.
-
zend_extensionstring -
Ruta absoluta donde cargar una extensión dinámica Zend (por ejemplo APD) se cargará cuando se inicie PHP.
-
zend_extension_debugstring -
Variante de zend_extension para extensiones compiladas con información de depuración antes de PHP 5.3.0.
-
zend_extension_debug_tsstring -
Variante de zend_extension para extensiones compiladas con información de depuración y peticiones seguras antes de PHP 5.3.0.
-
zend_extension_tsstring -
Variante de zend_extension para extensiones compiladas con peticiones seguras antes de PHP 5.3.0.
-
cgi.check_shebang_lineboolean -
Controla cuando CGI PHP comprueba por la línea que empieza por #! (shebang) en el inicio del script que se está ejecutando. Esta línea quizá se necesita si el script soporta los dos modos, stand-alone y vía PHP CGI. El modo PHP en CGI omite esta línea e ignora el contenido de esta directiva si está activada.
-
cgi.fix_pathinfoboolean -
Proporciona soporte real PATH_INFO/ PATH_TRANSLATED para CGI. Anteriormente PHP estaba establecido de PATH_TRANSLATED a SCRIPT_FILENAME y PATH_INFO no funcionaba de la manera que lo hace ahora. Para más información sobre PATH_INFO vea las especificaciones CGI. Si establece el valor de esta directiva a 1, PHP CGI arreglará sus rutas conforme a las especificaciones. Si lo establece a 0, funcionará como anteriormente. Por defecto es 0. Debería usar en sus scripts SCRIPT_FILENAME en lugar de PATH_TRANSLATED.
-
cgi.force_redirectboolean -
cgi.force_redirect es necesario para proporcionar seguridad al ejecutar PHP bajo CGI en la mayoría de servidores. Si no lo define, PHP activa esta variable por defecto. Puede cambiarlo a off asumiendo su propio riesgo.
Nota:
Para usuarios de Windows: Al usar IIS esta ocpción debe debe estar desactivada. Para OmniHTTPD o Xitami se aplica lo mismo.
-
cgi.redirect_status_envstring -
Si cgi.force_redirect está on, y no lo está ejecutando bajo servidores web Apache o Netscape (iPlanet), quizá necesite definir una variable de entorno que PHP buscará para saber si es está bien continuar con la ejecucción.
Nota:
Definir esta variable puede causar problemas de seguridad, no la cambie a no ser que sepa lo que está haciendo.
-
cgi.rfc2616_headersint -
Le indica a PHP qué tipo de encabezados usar cuando envía el código de respuesta HTTP. Si está establecido a 0, PHP envía el estado: Encabezado soportado por Apache y otros servidores web. Cuando esta opción está establecida a 1, PHP enviará encabezados compatibles con » RFC 2616. Déjelo a 0 a no ser que sepa lo que está haciendo.
-
fastcgi.impersonatestring -
FastCGI bajo IIS (en SO basados en WINNT) soporta la habilidad de impersonar tokens de seguridad de la llamada del cliente. Esto permite a IIS definir la seguridad en la que la petición funciona. mod_fastgci bajo Apache actualmente no soporta esta característica (17/03/2002) Establézcalo a 1 si funciona bajo IIS. Por defecto es cero.
-
fastcgi.loggingboolean -
Activa SAPI logging cuando se usa FastCGI. Por defecto logging está activado.
Subir ficheros
| Nombre | Por defecto | Cambiable | Historial de 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 | |
| max_input_nesting_level | 64 | PHP_INI_PERDIR | Disponible desde PHP 5.3.9. |
| max_input_vars | 1000 | PHP_INI_PERDIR | Disponible desde PHP 5.3.9. |
| upload_max_filesize | "2M" | PHP_INI_PERDIR | PHP_INI_ALL en PHP <= 4.2.3. |
| max_file_uploads | 20 | PHP_INI_SYSTEM | Disponible desde PHP 5.2.12. |
He aquí una breve explicación de las directivas de configuración.
-
file_uploadsboolean o integer -
Cuando o no activar HTTPS file uploads. Ver también upload_max_filesize, upload_tmp_dir, y post_max_size directivas.
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_dirstring -
Directorio temporal usado para guardar los ficheros durante el proceso de subida. Debe tener permisos de escritura para el usuario que está ejecutando PHP. Si no está especificado PHP usará el predeterminado del sistema.
Si el directorio especificado no tiene permisos de escritura PHP volverá al directorio temporal del sistema por defecto. Si la directiva open_basedir está habilitada, entonces el directorio del sistema por defecto debe permitir la subida de ficheros para que funcione.
-
upload_max_filesizeinteger -
El tamaño máximo a subir un fichero.
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. -
max_file_uploadsinteger -
Número máximo de ficheros permitidos para subir simulatáneamente. A partir de PHP 5.3.4 los campos dejados en blanco en la subida de ficheros no contarán en este límite.
Configuración general SQL
| Nombre | Por defecto | Cambiable | Historial de cambios |
|---|---|---|---|
| sql.safe_mode | "0" | PHP_INI_SYSTEM |
He aquí una breve explicación de las directivas de configuración.
-
sql.safe_modeboolean -
Si está activado, las funciones de conexión a bases de datos usarán la configuración por defecto en lugar de los párametros definidos. Para ver cuales son los valores por defecto vea la documentación de las funciones para la base de datos en concreto.
Específico de Windows
| Nombre | Por defecto | Cambiable | Historial de cambios |
|---|---|---|---|
| windows_show_crt_warning | "0" | PHP_INI_ALL | Disponibe desde PHP 5.4.0. |
He aquí una breve explicación de las directivas de configuración.
-
windows_show_crt_warningboolean -
Esta directiva muestra las advertencias CRT de Windows cuando está establecida. Estas advertencias eran mostradas por omisión hasta PHP 5.4.0.
Adding multiple directories to open_basedir:
open_basedir = "/var/www/htdocs/:/var/www/tmp/" adds both paths /var/www/htdocs/ and /var/www/tmp/. Do not forget the trailing slash, otherwise the last directory will be considered as a prefix (< 5.3.4).
On Windows you use ; as the seperator.
If you need to use a path in your include_path that has a space in it - I found that I could make it work (in windows anyway) by setting a path like this
L:\Information Technology\Resources\lib\
in the include path like this listed below
include_path = ".;L:\Information" " Technology\Resources\lib\"
Note that there is no way to disable eval() work by using disable_functions directive, because eval() is a language construct and not a function.
Many people advise to disable such potentially-insecure functions like system(), exec(), passthru(), eval() and so on in php.ini when not running in safe mode, but eval() would still work even it listed in disable_functions.
This is a possible solution for a problem which seems to be a php-ini-problem but is not.
If a $_POST is used with large fields e.g. textarea's with more than 120kb characters php returns a blank screen, even if the max_post_size is 8M.
This problem may be caused by an apache-module SecFilter.
Adding the following lines to the .htaccess solves the problem.
SecFilterEngine Off
SecFilterScanPOST Off
I know this is not a php-issue, but i'm still posting it here since it looks like it is a php-problem and I did not find any sites or forums offering this solution.
Amusingly, the include_path logically includes the current directory of the running file as the last entry all the time anyways, so part of the business about shoving "." into the include_path is spurious -- it's "there" on the end all the time, at least in the 5.2.12 source (see main/fopen_wrappers.c around line 503).
This one had me goin' for a while.
For 'short_open_tag',
though it is marked as PHP_INI_ALL in changable column,
you should note the CHANGE_LOG column also:
PHP_INI_ALL in PHP <= 4.0.0.
PHP_INI_PERDIR in PHP < 5.3.0
So as of 4.0, it will not work if you wanna use
ini_set('short_open_tag') to change it's value on the fly.
Note that on some Unix systems (i.e. PHP 5.1.6 on Centos 5.2) include_path in php.ini should NOT be quoted.
For example, instead of
include_path='.:/usr/share/php'
use
include_path=.:/usr/share/php
Using quotes does not cause any error message, but all of your require_once() directives will fail (indicating that file could not be opened) - unless full path to target file is provided.
When display_errors is off, PHP will send an HTTP 500 result header on a fatal error. This is usefull when working with AJAX applications.
A handy trick to pick up parse errors in test_file.php if you can't set display_errors in php.ini or use .htaccess:
<?php
error_reporting (E_ALL);
ini_set ('display_errors', true);
include('./test_file.php');
?>
"post_max_size"
"[..]This can be tracked in various ways, e.g. by passing the $_GET variable to the script processing the data, i.e. <form action="edit.php?processed=1">, and then checking if $_GET['processed'] is set."
using PHP 4.4.8 it seems that only the $_POST array will be empty in case of the file is largen than post_max_size.
so above mentioned method does not work in my case.
i need to use $_POST['processed'] instead of $_GET['processed']
If you are having trouble getting the auto_prepend_file to work with the command line interface make sure that you have set it in the cli specific php.ini and that the read permission is set correctly for that php.ini file.
If you want to display the upload limit without knowing the server configuration, this may be useful:
<?php
function let_to_num($v){ //This function transforms the php.ini notation for numbers (like '2M') to an integer (2*1024*1024 in this case)
$l = substr($v, -1);
$ret = substr($v, 0, -1);
switch(strtoupper($l)){
case 'P':
$ret *= 1024;
case 'T':
$ret *= 1024;
case 'G':
$ret *= 1024;
case 'M':
$ret *= 1024;
case 'K':
$ret *= 1024;
break;
}
return $ret;
}
$max_upload_size = min(let_to_num(ini_get('post_max_size')), let_to_num(ini_get('upload_max_filesize')));
echo "Maximum upload file size is ".($max_upload_size/(1024*1024))."MB.";
?>
Do note however that this limit is not completely reliable; there are other factors which need to be taken into account, such as any other $_POST data and their size, the memory limit, and the script time limit. This does, however, give some rough limit, and helps you avoid "Doh!" problems where you can't figure out why your file won't upload. :)
While the manual says that the file specified by auto_prepend_file is included as if it were called by include(), in fact the file is included as if it were called by require().
In other words, if PHP cannot find the file that you specify with auto_prepend_file, it will throw a fatal error.
register_long_arrays has a very odd behavior (at least in PHP 5.2):
With register_long_arrays=Off the $GLOBALS array will not contain [_SERVER] and [_REQUEST]. They are accessible as superglobals ($_SERVER, $_REQUEST), but they disappear from the $GLOBALS array!
to make sure that all requests use SSL you can use this in a file that is set for auto_prepend_file. This ensures that all requests are SSL
<?php
if(empty($_SERVER['HTTPS']) || strtolower($_SERVER['HTTPS']) != 'on' )
header("Location: https://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}") and exit();
?>
I wish the documentation was more clear as to whether the arg_separator.output character is automatically encoded when PHP outputs it. In other words, is "&" valid or do I need to specify the encoded character "&"? It would make sense to specify only "&" and hope that it is encoded as needed. That way the value could be read by other functions and encoded only when output to HTML, rather than having to test whether it is already encoded and decode it when necessary (for header redirection for example)
"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
Starting with PHP 4.4.0 (at least PHP version 4.3.10 did have old, documented behaviour) interpretation of value of "session.save_path" did change in conjunction with "save_mode" and "open_basedir" enabled.
Documented ( http://de.php.net/manual/en/ref.session.php#ini.session.save-path ):
Values of "session.save_path" should or may be **without** ending slash.
For instance:
<?php
// Valid only *before* PHP 4.4.0:
ini_set( "session.save_path", "/var/httpd/kunde/phptmp" );
?> will mean:
The directory "/var/httpd/kunde/phptmp/" will be used to write data and therefore must be writable by the web server.
Starting with PHP 4.4.0 the server complains that "/var/httpd/kunde/" is not writable.
Solution: Add an ending slash in call of ini_set (or probably whereever you set "session.save_path"), e.g.:
<?php
// Note the slash on ".....phptmp/":
ini_set( "session.save_path", "/var/httpd/kunde/phptmp/" );
?>
Hope, that does help someone.
Warning, if you change upload_max_filesize, please note that both post_max_size and memory_limit directives may have to change too.
I did a little experimentation on the behaviour of auto_prepend_file as the order of access wasn't clear to me from the documentation.
1. Apache checks to see if the target file exists.
2. The prepend file is called
3. The target file is called
This means that you can use auto_prepend_file to change the target file before you access it however you can't generate new files.
Please be mindful, that if you plan on re-configuring / recompiling to add --enable-memory-limit support, you may need to run a 'make clean' before you run 'make'. Otherwise, you may end up with a phpinfo() that shows up with --enable-memory-limit as a configure parameter, but the memory_get_usage() function will still force a fatal error.
