Cuando se usa PHP como un módulo de Apache, se pueden cambiar
valores de la configuración usando directivas en los ficheros de
configuración de apache, httpd_conf y _htaccess (Se necesitan
privilegios "AllowOverride Options" ó "AllowOverride All")
Con PHP 4_0, hay varias directivas Apache que permiten cambiar la
configuracion de PHP desde los ficheros de configuración de
apache_ Para obtener una lista de que directivas son del tipo
PHP_INI_ALL,
PHP_INI_PERDIR, ó
PHP_INI_SYSTEM, consultar la lista que se
encuentra en la documentación de la función
ini_set()_
Nota:
Con PHP 3_0, existen directivas que corresponden a cada parametro
de configuración en php3_ini, con el
prefijo "php3_"_
php_valuenombrevalor
Asigna el valor de la directiva especificada_ Puede ser usado
solamente con directivas del tipo
PHP_INI_ALL y
PHP_INI_PERDIR_ Para borrar un valor
previo, asignar none como valor
Nota:
No usar php_value para definir valores
booleanos_ Deveria usarse php_flag en su
lugar (vea más abajo)_
php_flagnombreon|off
Usado para asignar una directiva de configuración
Booleana_ Puede ser usado solamente con directivas del tipo
PHP_INI_ALL y
PHP_INI_PERDIR_
php_admin_valuenombrevalor
Asigna el valor de la directiva especificada_ NO puede usarse
en ficheros _htaccess_ Todo tipo de directiva asignada con
php_admin_value no
puede ser cambiada con _htaccess ó directivas
"virtualhost"_ Para borrar un valor previo, asignar
none como valor_
php_admin_flagnombreon|off
Usado para asignar una directiva de configuración
Booleana_ NO puede usarse en ficheros _htaccess_ Todo tipo
de directiva asignada con php_admin_flag no puede ser
cambiada con _htaccess ó directivas_
Ejemplo 4_2_ Ejemplo de configuración de apache
<IfModule mod_php4_c>
php_value include_path "_:/usr/local/lib/php"
php_admin_flag safe_mode on
</IfModule>
<IfModule mod_php3_c>
php3_include_path "_:/usr/local/lib/php"
php3_safe_mode on
</IfModule>
Atención
Las Constantes en PHP no existen fuera de PHP_ Por ejemplo, en
httpd_conf no se pueden usar constantes PHP tales como
E_ALL ó
E_NOTICE para definir la directiva error_reporting, ya que no
tendrá ningún significado y será evaluada
como 0_ Usar los valores asociados de
"bitmask" en su lugar_ Estas constantes pueden ser usadas en
php_ini
Cambiando la configuracion de PHP via
registros en Windows
Cuando se usa PHP en Windows, se pueden cambiar los valores de
configuracion por medio de los registros de Windows_ Los valores
de configuracion se guardan en la llave de registro
HKLM\SOFTWARE\PHP\Per Directory Values, en las
subllaves correspondientes al PATH_ Por ejemplo, los valores de
configuracion del directorio c:\inetpub\wwwroot
se guardaran en HKLM\SOFTWARE\PHP\Per Directory
Values\c\inetpub\wwwroot_ La configuracion de un
directorio es valida para todos los scripts ejecutados en el mismo
y sus subdirectorios_ Los valores en la llave deben de definirse
con el nombre de la directiva de
configuracion de PHP y el valor correspondiente_ Las
constantes PHP en el valor no son analizadas_
Otros interfaces de PHP
Dependiendo del interfaz de PHP se pueden
cambiar ciertos valores en tiempo de ejecución con la función
ini_set()_ La siguiente tabla describe en que
nivel una directiva puede ser definida/cambiada_
Tabla 4_1_ Definición de constantes PHP_INI_*
Constante
Valor
Significado
PHP_INI_USER
1
Puede ser definida en scripts de usuario
PHP_INI_PERDIR
2
Puede ser definida en php_ini, _htaccess ó
httpd_conf
PHP_INI_SYSTEM
4
Puede ser definida en php_ini ó httpd_conf
PHP_INI_ALL
7
Puede ser definida en cualquier sitio
Se pueden ver las definiciones de los valores de configuración en
la salida de phpinfo()_ Los valores
individuales de configuración de directivas pueden ser accedidos
con ini_get() ó get_cfg_var()_