Liste des sections du fichier php.ini
Cette liste inclut les sections du php.ini qu'il est possible d'ajuster pour
configurer PHP selon l'hôte virtuel ou le chemin. Ces sections sont optionnelles.
Ces sections n'affectent pas directement PHP. Elles sont utilisées pour grouper
les autres directives de configuration du php.ini et pour les appliquer à un hôte
ou à un chemin particulier.
Ces sections ne sont utilisées qu'en mode CGI/FastCGI et elles ne peuvent
pas définir des directives extension
et zend_extension.
Les directives définies dans ces sections ne peuvent pas être écrasées par
des fichiers .user.ini
ni à l'exécution, comme celles définies avec
php_admin_value.
Quel que soit leur ordre dans le php.ini,
[PATH=] est prioritaire sur
[HOST=],
et un chemin plus profond sur un chemin moins profond.
Avec PHP-FPM,
ces sections sont également prioritaires sur la configuration du pool
et les paramètres FastCGI, y compris php_admin_value
et PHP_ADMIN_VALUE.
Voici un éclaircissement sur
l'utilisation des directives de configuration.
-
[HOST=<host>]
-
Cette section permet de définir un jeu de directives du php.ini
qui prendront effet sur l'hôte spécifié.
Exemple #1 Active la sortie d'erreur à l'écran pour dev.site.com
[HOST=dev.site.com]
error_reporting = E_ALL
display_errors = On
-
[PATH=<path>]
-
Cette section permet de définir un jeu de directives du php.ini
qui prendront effet quand un script sera lancé depuis le chemin spécifié.
Exemple #2 Ajoute un script de sécurité pour les zones protégées
[PATH=/home/site/public/secure]
auto_prepend_file=security.php
public at grik dot net ¶17 years ago
In [HOST=...] one should use only the 1st server name from the list of server names.
I.E. if you have
server_name example.com, example2.com;
and will use www.example.com in a browser,
use [HOST=example.com] 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).
robinhook at mail dot com ¶8 years ago
this HOST and PATH sections doesn't seems to work in php.ini under apache 2.4 with php-fpm 7.1.16 for directive php_value or php_admin_value open_basedir or include_path.
phpinfo() says "none" in master and local values.
leo ¶15 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.
<?php
eaccelerator.enable = 0
[HOST=*]
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:
http://www.php.net/manual/en/ini.sections.php
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".
crash at lubyte dot de ¶16 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:
[HOST=dev.example.com]
display_errors = on
[PHP]
this will change the section back to [PHP] where extension= and zend_extension= is allowed.
dasloch at absatzen dot de ¶6 years ago
Note that you cannot usefully set syslog.* in [PATH=] (and probably [HOST=]) sections, since the syslogger is initialized only once per php-fpm worker process, and not per request.
robinhook at mail dot com ¶8 years ago
Sorry for the note. I've read some bad tutorials.
The correct syntax is : directive = 'value'
not a thing like : php_value[directive] = "somevalue"
robert dot johnson at icap dot com ¶16 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.