
Archivo de configuración PHP
El archivo de configuración (php.ini) se lee cuando se inicia el idioma. Para las versiones del servidor, el proceso de lectura ocurre cuando se inicia el servidor. En las versiones CGI y CLI, este proceso se inicia en cada invocación.
El archivo php.ini se busca en los siguientes lugares en el siguiente orden:
- Ubicación especificada del módulo SAPI (directiva PHPIniDir en Apache 2, opción de línea de comando -c en CGI y CLI, parámetro php_ini en NASPI, variable de entorno PHP_INI_PATH en THTTPD).
- Variable de entorno PHPRC. Antes de la versión 5.2.0, la validación se realizaba después de la clave de registro que se menciona a continuación.
- En la versión 5.2.0 y posteriores, ahora es posible establecer la ubicación del archivo php.ini para versiones en varios idiomas. La raíz de las claves de registro php depende de la naturaleza del sistema instalado, ya sea de 32 bits o de 64 bits. Si PHP y el sistema instalado son de 32 o 64 bits, use la clave [(HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP], pero si PHP es de 32 bits y el sistema instalado es de 64 bits, use la clave [[HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ PHP]]]. Si se usa el mismo sistema de bits, las siguientes claves de registro se verifican en orden: [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ xyz], [HKEY_LOCAL_MACHINE \ SOFTWARE \ CHINE \ PHP \ KEY_LOCAL_MACHINE \ PHP] ] SOFTWARE \ PHP \ x], donde x, y y z representan versiones principales, secundarias y versiones, respectivamente. Si PHP es de 32 bits y el sistema instalado es de 64 bits, las siguientes claves de registro se escanean en orden: [HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6421Node \ PHP \ xy z] y [HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6421Node \ PHP \ xy] y [HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6421Node \ PHP \ x] donde x, y y z representan versiones principales, secundarias y de lanzamiento, respectivamente. Si hay un valor Ini File Path en cualquiera de estas claves, el primer valor encontrado se utilizará como la ubicación del archivo php.ini (solo Windows).
- Valor de Ini FilePath (solo Windows), [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP] o [HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ PHP].
- La carpeta de trabajo actual (excepto la CLI).
- Carpeta del servidor web (en módulos SAPI) o carpeta PHP (Windows).
- carpeta de windows (C: \ windows o C: \ winnt) (Windows) o la opción –with-config-file-path disponible en tiempo de compilación.
Si el archivo está php-SAPI.ini
disponible, SAPI aquí es la interfaz de programación del servidor que se usa como php-cli.ini
o php-apache.ini
, entonces se usa en lugar del php.ini
. El nombre de la API del servidor se puede especificar mediante php_sapi_name()
.
Nota importante en el servidor web Apache cambia el directorio a raíz al inicio, lo que provoca un intento de leer un archivo php.ini en la raíz del archivo del sistema, si hay uno disponible.
Las variables de entorno se pueden utilizar en un archivo php.ini
como se muestra en el siguiente ejemplo.
Ejemplo 1: variables de entorno en un archivo php.ini
; PHP_MEMORY_LIMIT se toma del entorno memory_limit = $ { PHP_MEMORY_LIMIT }
Las páginas sobre extensiones documentan los enrutadores con los que funcionan las extensiones en un archivo php.ini
, y hay una lista de enrutadores internos en las extensiones, pero no todos los enrutadores están documentados en esta guía. Puede leer los comentarios en un archivo php.ini
para ver la lista completa de enrutadores en su versión de PHP, o puede buscar la última versión de un archivo php.ini
en Git. Ejemplo 2: archivo de ejemplo php.ini
; cualquier texto en una línea después de un punto y coma sin comillas (;) se ignora [ php ] ; sección marcadores ( de texto dentro de cuadrados entre paréntesis ) son también ignorados ; Booleanas valores pueden ser fijados a ya sea : ; true , on , yes ; or false , off , no , none register_globals = off track_errors = yes ; que puede incluir cadenas en doble - cotizaciones include_path = ":. / usr / local / lib / php" ; las barras invertidas se tratan de la misma manera que cualquier otro carácter include_path = ".; c: \ php \ lib"
En PHP 5.1.0 ahora es posible hacer referencia a variables .ini
existentes desde dentro de archivos, por .ini
ejemplo:
open_basedir = $ { open_basedir } ': / nuevo / dir' .
Escanear carpetas
Es posible configurar PHP para escanear una carpeta en busca de archivos .ini
después de leer el archivo php.ini
, y se puede hacer en el momento de la descarga configurando la opción --with-config-file-scan-dir
. En la versión de idioma 5.2.0 y posteriores, la carpeta que borrará el idioma se puede redefinir en tiempo de ejecución configurando la variable de entorno PHP_INI_SCAN_DIR
.
El escaneo se puede realizar en varias carpetas separándolas con un separador de ruta específico de la plataforma (; en Windows, NetWare y RISC OS, y: en todas las plataformas, el valor utilizado por PHP se proporciona en la constante PATH_SEPARATOR
). Si se proporciona una carpeta vacía PHP_INI_SCAN_DIR
, el idioma eliminará esa carpeta en el momento de la compilación con --with-config-file-scan-dir
.
PHP escanea todos los archivos con la extensión .ini
dentro de cada carpeta y en orden alfabético. Puede obtener una lista de los archivos cargados y su orden llamando a la función php_ini_scanned_files()
o ejecutando PHP con la extensión --ini
.
Suponiendo que la configuración de PHP incluye --with-config-file-scan-dir=/etc/php.d
y el separador de ruta es: …
$ php
El idioma cargará todos los archivos de la carpeta /etc/php.d/*.ini
como archivos de configuración.
$ PHP_INI_SCAN_DIR = / usr / local / etc / php.d php
El idioma cargará todos los archivos de la carpeta /usr/local/etc/php.d/*.ini
como archivos de configuración.
$ PHP_INI_SCAN_DIR =: / usr / local / etc / php.d php
El idioma cargará todos los archivos en la carpeta /etc/php.d/*.ini
y luego /usr/local/etc/php.d/*.ini
como archivos de configuración.
$ PHP_INI_SCAN_DIR = / usr / local / etc / php.d : php
El idioma cargará todos los archivos en la carpeta /usr/local/etc/php.d/*.ini
y luego /etc/php.d/*.ini
como archivos de configuración.
Registro de cambios
Versión | Función |
---|---|
7.0.0 | Los hashtags (#) ya no representan comentarios. |
5.3.0 | Los comentarios (#) no deben usarse y el idioma generará una advertencia de uso obsoleto si se usan. |
5.2.0 | El valor de la variable de entorno PHP_INI_SCAN_DIR se puede configurar para cambiar la carpeta especificada por el código de configuración. |
5.1.0 | Es posible hacer referencia a las variables .ini existentes desde dentro de los archivos .ini. |
Los archivos .user .ini. de PHP
PHP desde la versión 5.3.0 admite archivos INI para la configuración y para cada carpeta por separado, estos archivos son manejados por CGI / FastCGI SAPI, y PECL htscanner ahora se deja a favor de esta característica. Si está utilizando PHP como módulo de Apache, puede utilizar archivos .htaccess
para hacer lo mismo.
Además del archivo php.ini principal, el idioma escanea los archivos INI en cada carpeta. Comenzando desde la carpeta que contiene el archivo PHP solicitado por el servidor y avanzando hasta la carpeta raíz del archivo actual como se especifica en $_SERVER['DOCUMENT_ROOT']
. Si un archivo es PHP no está en la carpeta raíz, el proceso de escaneo se realiza solo en la carpeta que lo contiene.
El idioma reconoce la configuración INI de un patrón PHP_INI_PERDIR
y PHP_INI_USER
en los archivos INI de un patrón .user .ini
Controles dirigidos a INI
dos user_ini.filename
y user_ini.cache_ttl
utilizan los archivos INI del usuario.
La directiva user_ini.filename establece el nombre del archivo que el idioma busca en cada carpeta, y si especifica una cadena vacía como valor para este mensaje, el idioma no busca archivos en absoluto. El valor predeterminado para este enrutador es .user.ini
.
El enrutador controla user_ini.cache_ttl
la frecuencia con la que se leen INI
los archivos del usuario; el valor predeterminado es 300 segundos(5 minutos).
Estableciendo la configuración
Estos modos especifican dónde y cuándo se puede establecer o no el indicador de PHP, y cada enrutador de esta guía apunta a uno de estos modos. Por ejemplo, algunas configuraciones dentro del código PHP se especifican usando la función, ini_set()
mientras que otras requieren el uso de un archivo php.ini
o httpd.conf
.
Por ejemplo: un enrutador output_buffering
está en posición, por PHP_INI_PERDIR
lo que no se puede configurar usando la función, ini_set()
pero un enrutador display_errors
está en posición, por lo que PHP_INI_ALL
se puede configurar en cualquier lugar incluso por la función ini_set()
.
Definición de modos PHP_INI_ *.
Propiedad | Función |
---|---|
PHP_INI_USER | El elemento se puede configurar en el código de usuario; cómo usar la función ini_set () o en el registro de Windows. En PHP 5.3 y en posteriores, ahora es posible configurar el elemento en el archivo .user .ini. |
PHP_INI_PERDIR | El portlet se puede configurar en php.ini, .htaccess, httpd.conf o .user .ini (desde la versión 5.3) |
PHP_INI_SYSTEM | El elemento se puede configurar en php.ini o httpd.conf |
PHP_INI_ALL | El elemento se puede configurar en cualquier lugar. |
Cómo cambiar los ajustes de configuración
Ejecute PHP como un módulo de Apache. Cuando se usa PHP como módulo Apache, los ajustes de configuración también se pueden cambiar usando directivas en los archivos de configuración del servidor Apache (por ejemplo httpd.conf
) y archivos .htaccess
, y para hacer esto necesitará » AllowOverride Options
» o » » permisos AllowOverride All
.
Hay varias directivas de Apache que le permiten cambiar la configuración de idioma desde los archivos de configuración del servidor Apache. Para ver si el tipo de enrutador PHP_INI_ALL
o PHP_INI_PERDIR
o PHP_INI_SYSTEM
informados sobre el anexo , que muestra una lista de Bugeat php.ini.
php_value name value
Establezca el valor del enrutador especificado. Se puede usar con tipos de vector PHP_INI_ALL
y PHP_INI_PERDIR
, para desarmar valores anteriores, use el valor none
.
Nota: no se utiliza php_value
para establecer valores booleanos. php_flag
(ver más abajo) debe usarse para este propósito.
php_flag name on|off
Se utiliza para especificar un vector de inicialización lógico. Sólo se puede usar con el tipo PHP_INI_ALL
y PHP_INI_PERDIR
.
php_admin_value name value
Establece el valor del vector especificado, no se puede usar en archivos .htaccess
y ningún tipo de vector puede ser reemplazado por un archivo .htaccess
o función ini_set()
si lo especifica php_admin_value
. Para desarmar los valores anteriores use el valor none
.
php_admin_flag name on|off
Se utiliza para establecer un vector de inicialización lógico, no se puede utilizar en archivos .htaccess
y ningún tipo de vector puede ser anulado por un archivo .htaccess
o función ini_set()
si lo especifica php_admin_flag
.
Ejemplo 3: ejemplo de un archivo de configuración de Apache.
< IfModule mod_php5 . c > php_value include_path ".: / usr / local / lib / php" motor php_admin_flag en </ IfModule > < IfModule mod_php4 . c > php_value include_path ".: / usr / local / lib / php" motor php_admin_flag en </ IfModule >
Atención: Las constantes de PHP no existen fuera del lenguaje. Por ejemplo, las constantes de PHP como E_ALL y E_NOTICE no se pueden usar en el archivo httpd.conf para establecer los vectores de error_reporting, ya que no tendrán sentido y se procesarán en 0. Sin embargo, las los valores de máscara de bits se pueden usar, estas constantes son válidas para su uso en el archivo php.ini.
Cambio de la configuración de PHP mediante el registro de Windows
La configuración se puede modificar cuando se usa PHP en Windows y por carpeta usando el registro del sistema Los valores de configuración se almacenan en la clave de registro HKLM \ SOFTWARE \ PHP \ Valores por directorio en las subclaves asociadas con el nombre de ruta. Por ejemplo, los valores de configuración para la carpeta c: \ inetpub \ wwwroot se almacenan en la clave HKLM \ SOFTWARE \ PHP \ Per Directory Values \ c \ inetpub \ wwwroot, y las configuraciones para esta carpeta están disponibles para cualquier código que se ejecuta en esa carpeta o en sus subcarpetas secundarias.
Los valores dentro de la clave deben tener el nombre del vector de configuración específico del idioma y el valor de la cadena. Las constantes de PHP no se pueden usar como valores porque no se interpretarán, solo los valores de configuración en PHP_INI_USER están sujetos a cambios de esta manera, no los valores en PHP_INI_PERDIR.
Interfaces del idioma
Independientemente de cómo se ejecute PHP, el ini_set()
. Consulte la documentación de la función en la página para ini_set()
obtener más información.
Si desea ver una lista completa de configuraciones en su sistema operativo con sus valores actuales, puede ejecutar la función phpinfo()
y revisar el resultado. También puede acceder a los valores dependientes de un enrutador en particular en tiempo de ejecución de código usando ini_get()
o get_cfg_var()
.
- Múltiples Constantes en TypeScript
- Estructura de Datos las Colas
- Estructura de Datos las Pilas (Stack)
- Widget Drawer en Flutter
- Clase Scaffold en Flutter
- Estructura del lenguaje Python
- Iteradores y generadores en TypeScript
- Símbolo en TypeScript (Symbol)
- Tipos Avanzados en TypeScript
- Tipos de Compatibilidad en TypeScript
- Inferir Tipos en TypeScript
- Tipos Generalizados (Generics) en TypeScript
- Tipos Básicos de Datos en TypeScript
- Interfaces en TypeScript
- Declaración de Variables en TypeScript
- Funciones en TypeScript
- Categorías en TypeScript
- Introducción a TypeScript
- Clase MaterialApp en Flutter
- Clase Container en Flutter
- ¿Qué son los Widgets en Flutter?
- Introducción a la Arquitectura de Aplicaciones con Flutter
- Lista Doblemente Enlazada
- Listas Vinculadas en Estructura de Datos
- Introducción a las Matrices(Arrays)
- Estructuras de Datos en los Algoritmos de Programación
- Expresión const en JavaScript
- Expresión let en JavaScript
- Introducción al Lenguaje de Programación CSS
- Intérprete de Python