Файл конфигурации

Файл конфигурации (php.ini) считывается при запуске PHP. Для версий серверных модулей PHP это происходит только один раз при запуске веб сервера. Для CGI и CLI версиий это происходит при каждом вызове.

Поиск php.ini производится в следующих местах (по порядку поиска):

  • По месту расположения модуля SAPI (PHPIniDir директива Apache 2, -c параметр командной строки CGI и CLI, php_ini параметр в NSAPI, PHP_INI_PATH переменная среды в THTTPD)
  • Переменная среды PHPRC. До PHP 5.2.0 поиск по переменной производился после поиска в реестре, указанном ниже.
  • Как и в PHP 5.2.0, местоположение файла php.ini может быть указано для различных версий PHP. Следующие ключи реестра исследуются при поиске: [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] и [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x], где x, y и z подразумевают major, minor и release версии PHP. Если также имеется значение IniFilePath в любом из этих ключей, то местонахождение php.ini будет определено первым ключом по порядку. (только для Windows).
  • [HKEY_LOCAL_MACHINE\SOFTWARE\PHP], значение IniFilePath (только для Windows).
  • Текущая директория (исключая CLI).
  • Директория веб сервера (для SAPI модулей), или директория PHP (иначе в директории Windows).
  • В директории Windows (C:\windows или C:\winnt) (для Windows), или --with-config-file-path с выбором при компиляции.

Если файл php-SAPI.ini существует (где SAPI - это тип интерфейса, который используется, например, php-cli.ini или php-apache.ini), то он используется вместо php.ini. Тип интерфейса между веб-сервером и PHP может быть определен с помощью функции php_sapi_name().

Замечание:

Веб сервер Apache изменяет текущую директорию на корневую при запуске, в результате чего PHP считывает php.ini из корневой файловой системы, если файл существует.

Директивы php.ini обрабатываемые расширениями документированы на соответствующих страницах расширений. Список директив ядра имеется в приложении. Не все директивы PHP документированы в этом руководстве: для ознакомления с полным списком директив доступных в вашей версии PHP, пожалуйста, прочитайте комментарии вашего php.ini файла. Кроме того, вы можете найти полезной » последнюю версию php.ini из SVN.

Пример #1 Пример php.ini

; любой текст в строке после точки с запятой (;) без кавычек игнорируется
[php] ; маркеры разделов (текст в квадратных скобках) также игнорируется
; Могут быть установлены следующие логические значения:
;    true, on, yes
; или false, off, no, none
register_globals = off
track_errors = yes

; вы можете заключать строки в двойные кавычки
include_path = ".:/usr/local/lib/php"

; обратный слэш обрабатывается так же, как любые другие символы
include_path = ".;c:\php\lib"

С версии PHP 5.1.0 стало возможным обращаться к существующим ini-переменным из ini-файлов. Пример: open_basedir = ${open_basedir} ":/new/dir".


Участник рейтинга Тэглайн 2010