Настройка

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

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

  • По месту расположения модуля SAPI.
  • Переменная среды PHPRC.
  • Ключи реестра.
  • HKEY_LOCAL_MACHINE\SOFTWARE\PHP.
  • Текущая директория (исключая CLI).
  • Директория веб сервера (для SAPI модулей), или директория PHP (иначе в директории Windows).
  • Директории Windows

.user.ini файлы

С версии PHP 5.3.0 включена поддержка конфигурационных INI-файлов на уровне каталога. Эти файлы обрабатываются только CGI/FastCGI SAPI. Эта функция исключает расширение PECL htscanner. Если у вас Apache, пользуйтесь .htaccess файлами для достижения того же эффекта.

В дополнение к основному файлу php.ini , PHP ищет INI-файлы в каждой директории, начиная с директории запрошенного PHP-файла и продолжает поиск до корневой директории (установленной в $_SERVER['DOCUMENT_ROOT']). Если PHP-файл находится вне корневой директории, то сканируется только его директория.

php-config

php-config - это простой шелл-скрипт для получения информации о конфигурации установленного PHP. Список параметров командной строки доступных для php-config скрипта всегда можно получить запустив php-config с параметром -h :

Опции скрипта

Опция Описание
--includes Список -I опций со всеми подключаемыми файлами
--prefix Директория, в которой установлен PHP, например /usr/local
--version Версия PHP
--configure-options Конфигурационные опции для воссоздания настроек текущей установки PHP

string ini_set ( string $varname , string $newvalue ) Устанавливает значение заданной настройки конфигурации. Настройка будет хранить установленное значение пока выполняется скрипт. После завершения работы скрипта значение настройки вернется к исходному. Не все доступные настройки можно изменять функцией ini_set().

Директивы

html_errors

Отключает HTML тэги в сообщениях об ошибках. Новый формат HTML сообщений об ошибках предоставляет возможность вставлять ссылки в сообщения и перенаправлять пользователя на страницы с описаниями ошибок.

enable_dl

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

Главной причиной, по которой требуется выключение динамической загрузки, является безопасность. С помощью динамической загрузки можно обойти все open_basedir ограничения. По умолчанию динамическая загрузка разрешена, за исключением работы в безопасный режим. В безопасном режиме невозможен вызов dl().