Когда PHP работает как модуль Apache, настройки конфигурации изменяют через директивы в файлах конфигурации Apache (например, httpd.conf) и файлах .htaccess. Для этого потребуются привилегии «AllowOverride Options» или «AllowOverride All».
В Apache предусмотрели директивы, которые разрешают изменить конфигурацию PHP в файлах конфигурации Apache. Список директив INI_ALL
, INI_PERDIR
и INI_SYSTEM
смотрите в приложении «Список директив php.ini».
php_value
name
value
Устанавливает значение директивы. Разрешено указывать только с директивами типа INI_ALL
и INI_PERDIR
. Чтобы очистить ранее установленное значение, в качестве значения указывают none
.
Замечание: Не используйте директиву
php_value
для установки логических значений. Эту функцию выполняет директиваphp_flag
; её описание ниже.
php_flag
name
on|off
Устанавливает директивам логические значения. Разрешено указывать только с директивами типа INI_ALL
и 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> <IfModule mod_php4.c> php_value include_path ".:/usr/local/lib/php" php_admin_flag engine on </IfModule>
PHP-константы недоступны вне PHP. Например, в httpd.conf вы не можете использовать константы PHP такие как E_ALL
или E_NOTICE
, чтобы установить директиву error_reporting, так как они не будут иметь значения и будут приравниваться к 0. Используйте вместо этого соответствующие значения типа bitmask (битовая маска). Эти константы могут быть использованы в php.ini
При использовании PHP в Windows значения конфигурации могут быть изменены на уровне директории посредством реестра Windows. Значения конфигурации хранятся в ключе реестра HKLM\SOFTWARE\PHP\Per Directory Values
, в подключах, включающих полный путь. Например, значения конфигурации для директории c:\inetpub\wwwroot
могут храниться в ключе HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot
. Настройки для директории будут действительны для любых скриптов, запущенных из этой директории или её поддиректории. Значения ключа должны иметь название конфигурационной директивы PHP и строковое значение. PHP-константы в значениях игнорируются. Однако только значения конфигурации, изменяемые в INI_USER
могут быть установлены таким образом, значения же INI_PERDIR
не могут, потому что эти значения конфигурации перечитываются для каждого запроса.
Независимо от того, как вы запускаете PHP, вы можете изменять некоторые значения во время выполнения ваших скриптов c помощью ini_set(). Для более детальной информации смотрите документацию на странице функции ini_set().
Если вам интересен полный список конфигурационных настроек вашей системы с текущими значениями, то вы можете запустить функцию phpinfo() и просмотреть результирующую страницу. Вы также можете получить доступ к значениям индивидуально сконфигурированных директив в процессе выполнения, используя ini_get() или get_cfg_var().