Краткое разъяснение конфигурационных
директив.
-
include_path
string
-
Указывает список директорий, в которых функции
require, include,
fopen(), file(),
readfile() и file_get_contents()
ищут файлы. Формат соответствует формату системной переменной окружения
PATH: список директорий,
разделенных двоеточием в Unix или точкой с запятой в Windows.
При поиске подключаемых файлов PHP отдельно рассматривает каждое
значение в include_path.
Он проверяет первый путь, если файл в нем не найден, то он переходит
к следующему, и так до тех пор, пока не найдет подключаемый файл, либо
вернет
предупреждение
или ошибку.
Вы можете изменить ваш include_path во время выполнения скрипта с
помощью функции
set_include_path().
Пример #1 include_path в Unix
include_path=".:/php/includes"
Пример #2 include_path в Windows
include_path=".;c:\php\includes"
Использование . в include_path позволяет
задавать относительные пути для подключения файлов, так как
точка означает текущую директорию. Однако, более эффективно
использовать include './file', чем заставлять
PHP каждый раз проверять текущую директорию при подключении каждого файла.
Замечание:
Переменные окружения (ENV) также доступны в .ini файлах.
Таким образом, можно ссылаться на домашнюю директорию с помощью директив
${LOGIN} и ${USER}.
Переменные окружения могут отличаться между различными серверными API,
так как сами эти окружения отличаются друг от друга.
Пример #3 Настройка include_path с помощью переменной окружения ${USER} в Unix
include_path = ".:${USER}/pear/php"
-
open_basedir
string
-
Ограничивает указанным деревом каталогов файлы, которые могут быть доступны для
PHP, включая сам файл. Эта директива НЕ подвержена влиянию
безопасного режима.
Когда скрипт пытается получить доступ к файлу, например, с помощью функции
fopen() или gzopen(),
проверяется местонахождение файла. Если файл находится вне указанного
дерева каталогов, PHP откажется его открывать. Все символические
ссылки будут раскрыты, так что с их помощью не удастся обойти это
ограничение. Если файл не существует, то символическая ссылка не сможет
быть прочитана и имя файла (прочитанное) будет рассматриваться
open_basedir
.
Опция open_basedir
может распространяться не только на функции для
работы с файловой системой; например, если MySQL настроен
использовать драйвер mysqlnd, то LOAD DATA INFILE
подпадает под опцию open_basedir
.
Множество функций PHP также использует open_basedir.
Специальное значение .
обозначает, что рабочая директория скрипта будет использована в качестве
базовой директории. Однако, это немного опасно, так как текущая директория
скрипта может быть легко изменена с помощью chdir().
В httpd.conf, open_basedir
может быть
выключена (например, для некоторых виртуальных хостов)
тем же способом, что и любая
другая конфигурационная директива: "php_admin_value open_basedir
none".
В Windows разделяйте директории точкой с запятой. На всех остальных системах,
разделяйте директории двоеточием. При работе в качестве модуля Apache, пути
open_basedir
автоматически наследуются от родительских директорий.
Ограничение, определяемое open_basedir
является
именем директории начиная с версии PHP 5.2.16 и 5.3.4. Предыдущие
версии использовали это значение в качестве префикса. Это означает,
что "open_basedir = /dir/incl" также разрешит доступ
к "/dir/include" и "/dir/incls",
если они существуют. Если вы захотите ограничить доступ только указанной
директорией, поставьте в конце слеш. Например:
open_basedir = /dir/incl/
По умолчанию все файлы могут быть открыты.
Замечание:
Начиная с версии PHP 5.3.0 значение open_basedir можно сделать
более строгим во время выполнения скрипта. Это означает, что если
open_basedir была установлена в /www/ в php.ini,
то скрипт может ужать конфигурацию до
/www/tmp/ во время выполнения с помощью
ini_set(). При указании нескольких директорий
можно использовать константу PATH_SEPARATOR
в качестве разделителя путей, не зависящего от операционной системы.
Замечание:
Использование опции open_basedir установит realpath_cache_size
на значение 0 и таким образом отключит кеш realpath.
-
doc_root
string
-
"Корневая директория" PHP на этом сервере. Используется только в
случае, если не пустая. Если PHP сконфигурирован с безопасный режим,
файлы вне этой директории не обрабатываются.
Если PHP не был скомпилирован с FORCE_REDIRECT, вам следует
установить doc_root, если вы используете PHP в качестве
CGI под любым веб-сервером (кроме IIS). Альтернативой является
использование конфигурационной директивы
cgi.force_redirect,
речь о которой идет ниже.
-
user_ini.cache_ttl
integer
-
-
user_ini.filename
string
-
-
user_dir
string
-
Базовое имя директории, используемой в домашнем каталоге пользователя
для PHP файлов, например, public_html.
-
extension_dir
string
-
В какой директории PHP должен искать динамически загружаемые модули. Смотрите
также: enable_dl и dl().
-
extension
string
-
Какие динамически загружаемые модули должны быть загружены при старте PHP.
-
zend_extension
string
-
Имя динамически загружаемого модуля Zend (например,
APD), который должен быть загружен при старте PHP.
-
zend_extension_debug
string
-
Вариант zend_extension
для модулей, скомпилированных с отладочной информацией до PHP 5.3.0.
-
zend_extension_debug_ts
string
-
Вариант zend_extension для потокобезопасных
модулей, скомпилированных с отладочной информацией до PHP 5.3.0.
-
zend_extension_ts
string
-
Вариант zend_extension
для потокобезопасных модулей.
-
cgi.check_shebang_line
boolean
-
Контролирует, нужно ли проверять первую строку CGI
PHP-скрипта на содержание #! (shebang).
Эта строка может быть необходима, если скрипт должен поддерживать как отдельный
запуск, так и с помощью PHP CGI. PHP в режиме
CGI пропускает эту строку и игнорирует ее
содержимое, если данная директива включена.
-
cgi.discard_path
boolean
-
Если разрешено, бинарный файл PHP CGI может безопасно располагаться вне web-дерева
и люди не смогут обойти безопасность .htaccess.
-
cgi.fix_pathinfo
boolean
-
Обеспечивает поддержку правильных
PATH_INFO/PATH_TRANSLATED
в CGI. Раньше PHP просто устанавливал
PATH_TRANSLATED в SCRIPT_FILENAME
и не обращал внимания на PATH_INFO.
Для получения дополнительной информации о PATH_INFO,
обратитесь к спецификации CGI. Установка этого
значения в 1 заставит PHP CGI
исправлять свой путь в соответствии со спецификацией. Значение 0
соответствует предыдущему поведению. По умолчанию опция включена.
Вы должны исправить свои скрипты так, чтобы они использовали
SCRIPT_FILENAME вместо PATH_TRANSLATED.
-
cgi.force_redirect
boolean
-
Директива cgi.force_redirect необходима для обеспечения безопасности
во время работы PHP в качестве CGI под большинством
веб-серверов. Если оставить ее неопределенной, по умолчанию PHP включает эту
директиву. Вы можете выключить ее на свой страх и
риск.
Замечание:
Пользователям Windows: При использовании IIS эта опция
должна быть отключена. Тоже самое необходимо
для OmniHTTPD и Xitami.
-
cgi.nph
boolean
-
Если cgi.nph разрешена, cgi будет принудительно возвращать код 200 на каждый запрос.
-
cgi.redirect_status_env
string
-
Если cgi.force_redirect включена и вы работаете не под веб-сервером
Apache или Netscape (iPlanet), вам может
понадобиться установить переменную окружения, которую будет искать
PHP чтобы убедиться, что он может продолжать выполнение.
Замечание:
Установка этой переменной может повлечь за собой проблемы с
безопасностью, так что вы должны знать, что вы делаете.
-
Сообщает PHP, какой тип заголовков использовать при отправке
кода ответа HTTP. Если установлено в 0, PHP отправляет
» RFC 3875 заголовок
"Status:", который поддерживается Apache и другими веб-серверами.
Если установлено в 1, PHP отправляет заголовки, соответствующие
» RFC 2616.
Если эта опция включена и вы используете PHP в окружении CGI (например,
PHP-FPM), то вместо использования HTTP-заголовков ответа в стиле
RFC 2616, нужно использовать их эквивалент из стандарта RFC 3875, например,
вместо header("HTTP/1.0 404 Not found"); нужно использовать
header("Status: 404 Not Found");
Оставьте в значении 0, если вы не уверены в том, что это значит.
-
fastcgi.impersonate
string
-
FastCGI под IIS (в ОС на базе WINNT) поддерживает возможность имперсонации прав
безопасности вызывающего клиента. Это позволяет IIS определить контекст безопасности,
в котором выполняется запрос. mod_fastcgi под Apache на текущий момент не
поддерживает эту возможность (03/17/2002).
Установите в 1 при работе под IIS. Значение по умолчанию - ноль.
-
fastcgi.logging
boolean
-
Включает логирование SAPI при использовании FastCGI. Логирование
включено по умолчанию.