Список разделов php.ini

В этом списке указаны разделы, в которых вы можете настроить PHP в зависимости от хоста или пути. Эти разделы необязательны.

Данные разделы не имеют прямого влияния на PHP. Они нужны для группировки других директив php.ini вместе и для возможности действовать в зависимости от определенного хоста или пути.

Данные разделы используются только в режиме CGI/FastCGI и в них не могут быть использованы директивы extension и zend_extension.

Название Место изменения История изменений
[HOST=] PHP_INI_SYSTEM Добавлено в PHP 5.3.0.
[PATH=] PHP_INI_SYSTEM Добавлено в PHP 5.3.0.

Краткое разъяснение конфигурационных директив.


Данный раздел позволяет определять набор php.ini директив, которые будут применяться только к указанному хосту.

Пример #1 Активация полного логирования и сообщения об ошибках для dev. домена

error_reporting = E_ALL
display_errors = On


Данный раздел позволяет определять набор php.ini директив, которые будут применяться, если скрипт будет запущен из указанного пути.

Пример #2 Добавление скрипта безопасности для защищенных зон



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).
2009-09-24 18:00:17
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.
2010-04-12 13:26:05
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.
2010-09-06 08:45:22
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".
2011-05-06 06:21:30
On Windows IIS 7 server I noticed that [PATH=] was not listened to. [HOST=] however worked.
2011-08-04 10:53:41
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.
2018-04-22 21:59:45
Sorry for the note. I've read some bad tutorials.
The correct syntax is : directive = 'value'
not a thing like : php_value[directive] = "somevalue"
2018-04-22 22:14:48
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.
2020-02-12 14:47:52

    Поддержать сайт на родительском проекте КГБ