Как изменить настройки конфигурации
Запуск 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> <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
При использовании 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().