PHP 8.1.2 Released!

Как изменить настройки конфигурации

Запуск PHP как модуля Apache

Когда PHP используется как модуль Apache вы также можете менять настройки конфигурации, используя директивы в файлах конфигурации Apache (например, httpd.conf) и файлах .htaccess. Для этого вам необходимы "AllowOverride Options" или "AllowOverride All" привилегии.

Есть несколько директив Apache, которые позволяют вам изменить конфигурацию PHP посредством файлов конфигурации Apache. С директивами PHP_INI_ALL, PHP_INI_PERDIR и PHP_INI_SYSTEM можно ознакомиться в приложении Список директив php.ini.

php_value name value

Устанавливает значение указанной директивы. Может использоваться только с директивами типа PHP_INI_ALL и PHP_INI_PERDIR. Для очистки предыдущих установленных значений используйте значение none.

Замечание: Не используйте php_value для установки логических значений. Вместо этого необходимо использовать php_flag (смотрите ниже).

php_flag name on|off

Используется для установки директивам логических значений. Может быть использовано только с директивами типа PHP_INI_ALL и PHP_INI_PERDIR.

php_admin_value name value

Устанавливает значение указанной директивы. Не может быть использовано в файлах .htaccess. Директивы любого типа, установленные с помощью php_admin_value не могут быть переопределены через .htaccess или ini_set(). Чтобы очистить предыдущее значение используйте значение none.

php_admin_flag name on|off

Используется для установки директивам логических значений. Не может быть использовано в файлах .htaccess. Директивы любого типа, установленные с помощью php_admin_flag не могут быть переопределены через .htaccess или ini_set().

Пример #1 Пример конфигурации Apache

<IfModule mod_php5.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag engine on
<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag engine on


PHP-константы недоступны вне PHP. К примеру, в httpd.conf вы не можете использовать константы PHP такие как E_ALL или E_NOTICE, чтобы установить директиву error_reporting, так как они не будут иметь значения и будут приравниваться к 0. Используйте вместо этого соответствующие значения типа bitmask (битовая маска). Эти константы могут быть использованы в php.ini

Изменение конфигурации PHP через реестр Windows

При использовании PHP в Windows значения конфигурации могут быть изменены на уровне директории посредством реестра Windows. Значения конфигурации хранятся в ключе реестра HKLM\SOFTWARE\PHP\Per Directory Values, в подключах, включающих полный путь. К примеру, значения конфигурации для директории c:\inetpub\wwwroot могут храниться в ключе HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot. Настройки для директории будут действительны для любых скриптов, запущенных из этой директории или её поддиректории. Значения ключа должны иметь название конфигурационной директивы PHP и строковое значение. PHP-константы в значениях игнорируются. Однако только значения конфигурации, изменяемые в PHP_INI_USER могут быть установлены таким образом, значения же PHP_INI_PERDIR не могут, потому что эти значения конфигурации перечитываются для каждого запроса.

Другие интерфейсы в PHP

Независимо от того, как вы запускаете PHP, вы можете изменять некоторые значения во время выполнения ваших скриптов c помощью ini_set(). Для более детальной информации смотрите документацию на странице функции ini_set().

Если вам интересен полный список конфигурационных настроек вашей системы с текущими значениями, то вы можете запустить функцию phpinfo() и просмотреть результирующую страницу. Вы также можете получить доступ к значениям индивидуально сконфигурированных директив в процессе выполнения, используя ini_get() или get_cfg_var().

add a note add a note

User Contributed Notes 7 notes

contrees.du.reve at gmail dot com
13 years ago
Being able to put php directives in httpd.conf and have them work on a per-directory or per-vitual host basis is just great. Now there's another aspect which might be worth being aware of:

A php.ini directive put into your apache conf file applies to php when it runs as an apache module (i.e. in a web page), but NOT when it runs as CLI (command-line interface).

Such feature that might be unwanted by an unhappy few, but I guess most will find it useful. As far as I'm concerned, I'm really happy that I can use open_basedir in my httpd.conf file, and it restricts the access of web users and sub-admins  of my domain, but it does NOT restrict my own command-line php scripts...
self at pabloviquez dot com
12 years ago
Note that, changing the PHP configuration via the windows registry will set the new values using php_admin_value. This makes that you cannot override them on runtime.

So for example, if you set the include_path on the windows registry and then you call the set_include_path function in your application, it will return false and won't change the include_path.
5 months ago
drugs from canada to usa <a href="">Femara</a> canadian vet pharmacy online <a href=>prednisone canadian pharmacy</a> ’
3 months ago
como e feito o viagra <a href=" ">what is the retail price of viagra</a>
5 months ago
can you just stop taking atorvastatin? <a href="">atorvastatin moa</a> lipitor statin <a href=>atorvastatin and grapefruit</a> ’
5 months ago
Diamox <a href="">ez pharmacy</a> online pharmacy canada reviews <a href=>Super Avana</a> ’
5 months ago
cialis viagra <a href="">natural alternative to viagra</a> nitroglycerin and viagra <a href=>viagra online generic</a> ’
To Top