CakeFest 2017 NYC, the Official CakePHP Conference

Lista de secciones de php.ini

Esta lista incluye las secciones de php.ini que se pueden establecer para configurar los ajustes de PHP según cada servidor o ruta. Estas secciones son opcionales.

Estas secciones no afectan directamente a PHP. Se utilizan para agrupar otras directivas de php.ini y hacerlas funcionar para un servidor o ruta determinados.

Estas secciones solo se utilizan en modo CGI/FastCGI y no pueden configurar directivas de extensión ni de zend_extension.

Nombre Cambiable Historial de cambios
[HOST=] PHP_INI_SYSTEM Añadida en PHP 5.3.0.
[PATH=] PHP_INI_SYSTEM Añadida en PHP 5.3.0.

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


Esta sección permite definir un conjunto de directivas de php.ini que afectarán solamente al servidor designado.

Ejemplo #1 Activar la notificación completa de errores por pantalla para el dominio dev.

error_reporting = E_ALL
display_errors = On


Esta sección permite definir un conjunto de directivas de php.ini que tomarán efecto al ejecutar un script en la ruta designada.

Ejemplo #2 Añadir un script de seguridad para aréas protegidas


add a note add a note

User Contributed Notes 6 notes

public at grik dot net
7 years ago
In [HOST=...] one should use only the 1st server name from the list of server names.

I.E. if you have
and will use in a browser,
use [] in php.ini for both addresses.

PHP looks not at the HOST request header (as I expected), but at the SERVER_NAME parameter (which by default is the 1st from the list of names, no matter what the HOST is).
5 years ago
Just developed the probably first php.ini hack to add commands which will only be parsed before PHP 5.3 when using mod_php.


# Disable eAccelerator by default
eaccelerator.enable = 0

# Now, to prevent incompatibilities with Zend Optimizer+, we
# want to enable eAccelerator only in PHP 5.2 or lower.
eaccelerator.enable = 1


What is happening here? In PHP 5.3, php.ini sections to set up PHP on a per host basis have been introduced:

These sections only work in CGI/FastCGI mode, however there still seems to be a difference in how the php.ini file is parsed in PHP 5.2 and PHP 5.3 when using mod_php: PHP 5.3 ignores everything below the line [HOST=*], whereas PHP 5.2 does not.

In the above example, PHP 5.3 only reads "eaccelerator.enable = 0" and then stops at the invalid command [HOST=*]. However, PHP 5.2 seems to ignore the invalid command and parses the whole configuration file, ending up with "eaccelerator.enable = 1".
robert dot johnson at icap dot com
6 years ago
Adding PATH= applies only to the named path and does not include sub-directories, you have to add a PATH= value for each sub-directory.

Also some settings have no effect even though phpinfo recognises and displays the per-folder value as the 'local' value, and the default as the 'master' value.

'fastcgi.impersonate' always uses the master setting.
z dot himdi at bita dot nl
5 years ago
On Windows IIS 7 server I noticed that [PATH=] was not listened to. [HOST=] however worked.
crash at lubyte dot de
6 years ago
If you have a system which uses separated PHP inis for loading extensions (Debian, Fedora and most other distributions do so), [PATH=] or [HOST=] will prevent loading extensions defined in those ini files (extension= and zend_extension=).

I had some headache, when I added a hosts.ini to /etc/php5/cgi/conf.d (Debians default), where I wanted to define some defaults for a host name. The manual says extension= and zend_extension= aren't allowed in [HOST=] and [PATH=] (see above). I figured out that you can easily fix that with adding [PHP] after your definitions.

For example hosts.ini:
display_errors = on


this will change the section back to [PHP] where extension= and zend_extension= is allowed.
6 years ago
This doesn't seem to work with php-fpm.
The values defined under PATH or HOST will become the new master value for all the processes (as if they were redefined).
To Top