Описание встроенных директив php.ini

Этот список включает встроенные директивы php.ini, которые вы можете использовать для настройки PHP. Директивы, которые обрабатываются модулями, перечислены и подробно описаны на страницах документаций соответствующих модулей. К примеру, информация о директивах сессий может быть найдена на странице документации сессий.

Опции Httpd

Опции Httpd
Имя По умолчанию Место изменения Список изменений
async_send"0"PHP_INI_ALL 


Языковые опции

Опции языка и прочих настроек
Имя По умолчанию Место изменения Список изменений
short_open_tag"1"PHP_INI_ALLPHP_INI_ALL в PHP <= 4.0.0. PHP_INI_PERDIR в PHP < 5.3.0
asp_tags"0"PHP_INI_PERDIRPHP_INI_ALL в PHP <= 4.0.0.
precision"14"PHP_INI_ALL 
serialize_precision"17"PHP_INI_ALLДоступна с версии PHP 4.3.2. До версии PHP 5.3.5 значение по умолчанию было равно 100.
y2k_compliance"1"PHP_INI_ALL 
allow_call_time_pass_reference"1"PHP_INI_PERDIRPHP_INI_ALL в PHP 4.0.0.
disable_functions""php.ini onlyДоступна с версии PHP 4.0.1.
disable_classes""php.ini onlyДоступна с версии PHP 4.3.2.
expose_php"1"Только php.ini 
zend.ze1_compatibility_mode"0"PHP_INI_ALLДоступна с версии PHP 5.0.0. Удалена в PHP 5.3.0
zend.multibyte"0"PHP_INI_ALLДоступна с версии PHP 5.4.0
detect_unicode"1"PHP_INI_ALLДоступна с версии PHP 5.1.0. Эта возможность устарела и будет обязательно удалена в будущем.

Краткое разъяснение конфигурационных директив.

short_open_tag boolean - Определяет, разрешается ли короткая форма записи ( <? ?>) тегов PHP. Если вы хотите использовать PHP совместно с XML, вы можете отключить эту опцию, чтобы беспрепятственно использовать <?xml ?>. В противном случае, вы можете отобразить это при помощи PHP, например: <?php echo '<?xml version="1.0"?>'; ?>. Если же эта опция отключена, вы должны использовать длинную форму открывающего тега PHP (<?php ?>).

Замечание:

Эта директива также влияла на сокращение всегда включена.

arg_separator.output string - Этот разделитель используется в генерируемых PHP URL в качестве разделителя аргументов.

arg_separator.input string - Список разделителей, используемых PHP для получения переменных из URL.

Замечание:

Каждый символ в этой директиве считается разделителем!

variables_order string - Устанавливает порядок обработки переменных EGPCS (Environment, Get, Post, Cookie, и Server). Например, если variables_order установлена в "SP", то PHP создаст superglobals $_SERVER и $_POST, но не будет создавать $_ENV, $_GET и $_COOKIE. Установка в "" означает, что ни одна superglobals не будет установлена.

Если включена устаревшая директива register_globals, то variables_order также устанавливает порядок экспорта переменных ENV, GET, POST, COOKIE и SERVER в глобальное пространство. Например, если порядок переменных установлен как "EGPCS", register_globals включена, и существуют обе $_GET['action'] и $_POST['action'], то переменная $action будет содержать значение $_POST['action'], так как P в нашем примере идет после G.

Внимание

В CGI и FastCGI SAPI, в $_SERVER также добавляются значения переменных окружения; S всегда эквивалентна ES вне зависимости от самого положения E в этой директиве.


Замечание:

Эта директива также влияет на содержимое и порядок переменной $_REQUEST.

request_order string - Эта директива регулирует порядок, в котором PHP добавляет переменные GET, POST и Cookie в массив _REQUEST. Добавление производится слева направо, новые значения перезаписывают старые.

Если значение этой директивы не установлено, для содержимого переменной $_REQUEST используется значение директивы variables_order.

Учтите, что файлы php.ini, поставляемые с дистрибутивом, по соображениям безопасности не содержат значение 'C' (cookies).

auto_globals_jit boolean - Когда включено, переменные SERVER и ENV создаются в тот момент, когда они впервые используются (Just In Time), а не в начале выполнения скрипта. Если эти переменные в скрипте не используются, включение этой директивы приведет к росту производительности.

Директивы PHP register_globals, register_long_arrays и register_argc_argv должны быть выключены для правильной работы этой директивы. Начиная с версии PHP 5.1.3 стало необязательно выключать register_argc_argv.

Внимание

Использование переменных SERVER и ENV проверяется на стадии компиляции, поэтому их использование с помощью, например, переменных переменных не запустит их инициализацию.


register_globals boolean -

Регистрировать или нет переменные EGPCS (Environment, GET, POST, Cookie, Server) в качестве глобальных переменных.

Начиная с версии » PHP 4.2.0, значением по умолчанию для этой директивы является off.

Пожалуйста, ознакомтесь с главой о безопасности Использование глобальных переменных для получения дополнительной информации.

Обратите внимание, что register_globals не может быть установлена во время выполнения скрипта (ini_set()). Тем не менее, вы можете использовать .htaccess, если ваш сервер позволяет это, как описано выше. Пример директивы в .htaccess: php_flag register_globals off .

Замечание:

На поведение register_globals влияет директива variables_order.

Внимание

С версии PHP 5.3.0 эта возможность считается УСТАРЕВШЕЙ. Крайне не рекомендуется полагаться на эту возможность.


register_argc_argv boolean - Сообщает PHP, следует ли объявлять переменные argv и argc (которые будут содержать GET-информацию). Смотрите также Использование PHP в командной строке. Эта директива стала доступна с версии PHP 4.0.0 и до этого была всегда включена.

register_long_arrays boolean - Сообщает PHP, следует ли регистрировать устаревшие длинные предопределенные переменные типа $HTTP_*_VARS. Если включена (по умолчанию), то длинные предопределенные переменные PHP, например $HTTP_GET_VARS, будут объявлены. Если вы их не используете, рекомендуем отключить их из соображений производительности. Вместо них следует использовать суперглобальные массивы, например $_GET. Эта директива стала доступна с версии PHP 5.0.0. Внимание

С версии PHP 5.3.0 эта возможность считается УСТАРЕВШЕЙ. Крайне не рекомендуется полагаться на эту возможность.


enable_post_data_reading boolean - При отключении этой опции влечет суперглобальные переменные $_POST и $_FILES не будут заполняться. Единственным способом прочесть POST-данные будет чтение обертки потока php://input. Это может оказаться полезным при проксировании запросов или обработки POST-данных способом, более эффективно использующим память.

post_max_size integer - Устанавливает максимально допустимый размер данных, отправляемых методом POST. Это значение также влияет на загрузку файлов. Для загрузки больших файлов это значение должно быть больше значения директивы upload_max_filesize. Если дополнительно используется ограничение памяти, memory_limit также влияет на загрузку файлов. В сущности, memory_limit должна быть больше чем post_max_size. Если используется integer, значение измеряется байтами. Вы также можете использовать сокращенную запись, которая описана в этом разделе FAQ. Если размер POST-данных больше чем post_max_size, суперглобальные переменные $_POST и $_FILES будут пустыми. Это можно отследить различными способами, например передав $_GET переменную в скрипт, обрабатывающий данные, т.е. <form action="edit.php?processed=1">, а затем проверить, установлена ли переменная $_GET['processed'].

Замечание:

PHP разрешает сокращения значений бит, включая K (кило), M (мега) и G (гига). PHP автоматически преобразует все эти сокращения. Будьте осторожны с превышением диапазона 32-битных целых значений (если вы используете 32-битную версию), так как это приведет к ошибке вашего скрипта.

gpc_order string -

Устанавливает порядок обработки переменных GET/POST/COOKIE. Значением по умолчанию для этой директивы является "GPC". Установка ее в "GP", к примеру, приведет к тому, что PHP будет полностью игнорировать cookies и перезапишет любую GET-переменную POST-переменной с таким же именем.

Замечание:

Эта опция недоступна в PHP 4. Вместо нее используйте variables_order.

auto_prepend_file string -

Определяет имя файла, который будет автоматически обрабатываться перед основным файлом. Файл вызывается так, будто он был подключен при помощи функции require(), так что include_path также используется.

Специальное значение none отключает эту директиву.

auto_append_file string -

Определяет имя файла, который будет автоматически обрабатываться после основного файла. Файл вызывается так, будто он был подключен при помощи функции require(), так что include_path тоже используется.

Специальное значение none отключает эту директиву.

Замечание: Если скрипт завершает работу при помощи exit(), auto_append_file НЕ выполняется.

default_mimetype string -

default_charset string -

PHP всегда отправляет кодировку по умолчанию в заголовке Content-Type. Чтобы отключить отправку кодировки, просто установите ее пустой строкой.

always_populate_raw_post_data boolean -

Всегда заполнять переменную $HTTP_RAW_POST_DATA, содержащую "сырые" POST-данные. В противном случае, переменная будет заполнена только при неопознанном MIME типе данных. Однако, предпочтительным способом доступа к "сырым" POST-данным является php://input. $HTTP_RAW_POST_DATA недоступна при enctype="multipart/form-data".

allow_webdav_methods boolean -

Разрешает обработку HTTP-запросов WebDAV при помощи PHP-скриптов (например PROPFIND, PROPPATCH, MOVE, COPY и т.д.). Эта директива не существует начиная с версии PHP 4.3.2. Если вы хотите получить POST-данные этих запросов, вы должны также включить always_populate_raw_post_data.

Смотрите также: magic_quotes_gpc, magic_quotes_runtime и magic_quotes_sybase.


Пути и Директории

Конфигурационные Опции Путей и Директорий
Имя По умолчанию Место изменения Список изменений
include_path".;/path/to/php/pear"PHP_INI_ALL 
open_basedirNULLPHP_INI_ALLPHP_INI_SYSTEM в PHP < 5.3.0
doc_rootNULLPHP_INI_SYSTEM 
user_dirNULLPHP_INI_SYSTEM 
extension_dir"/path/to/php"PHP_INI_SYSTEM 
extensionNULLТолько php.ini 
zend_extensionNULLТолько php.ini 
zend_extension_debugNULLТолько php.ini 
zend_extension_debug_tsNULLТолько php.ini 
zend_extension_tsNULLТолько php.ini 
cgi.check_shebang_line"1"PHP_INI_SYSTEMДоступна с версии PHP 5.2.0.
cgi.fix_pathinfo"1"PHP_INI_SYSTEMДоступна с версии PHP 4.3.0. PHP_INI_ALL до версии PHP 5.2.1.
cgi.force_redirect"1"PHP_INI_SYSTEMДоступна с версии PHP 4.2.0. PHP_INI_ALL до версии PHP 5.2.1.
cgi.redirect_status_envNULLPHP_INI_SYSTEMДоступна с версии PHP 4.2.0. PHP_INI_ALL до версии PHP 5.2.1.
fastcgi.impersonate"0"PHP_INI_SYSTEMДоступна с версии PHP 4.3.0. PHP_INI_ALL до версии PHP 5.2.1.
fastcgi.logging"1"PHP_INI_SYSTEMДоступна с версии PHP 4.3.0. PHP_INI_ALL до версии PHP 5.2.1.
cgi.rfc2616_headers"0"PHP_INI_ALLДоступна с версии PHP 4.3.0.

Краткое разъяснение конфигурационных директив.

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 каждый раз проверять текущую директорию при подключении каждого файла.

open_basedir string -

Ограничивает указанным деревом каталогов файлы, которые могут быть открыты с помощью PHP, включая сам файл. Эта директива НЕ подвержена влиянию безопасного режима.

Когда скрипт пытается открыть файл, например, с помощью функции fopen() или gzopen(), проверяется местонахождение файла. Если файл находится вне указанного дерева каталогов, 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 в качестве разделителя путей, не зависящего от операционной системы.

doc_root string -

"Корневая директория" PHP на этом сервере. Используется только в случае, если не пустая. Если PHP сконфигурирован с безопасный режим, файлы вне этой директории не обрабатываются. Если PHP не был скомпилирован с FORCE_REDIRECT, вам следует установить doc_root, если вы используете PHP в качестве CGI под любым веб-сервером (кроме IIS). Альтернативой является использование конфигурационной директивы cgi.force_redirect, речь о которой идет ниже.

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 для расширений, скомпилированных с отладочной информацией.

zend_extension_debug_ts string -

Вариант zend_extension для потокобезопасных расширений, скомпилированных с отладочной информацией.

zend_extension_ts string -

Вариант zend_extension для потокобезопасных расширений.

cgi.check_shebang_line boolean -

Контролирует, нужно ли проверять первую строку CGI PHP-скрипта на содержание #! (shebang). Эта строка может быть необходима, если скрипт должен поддерживать как отдельный запуск, так и с помощью PHP CGI. PHP в режиме CGI пропускает эту строку и игнорирует ее содержимое, если данная директива включена.

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.redirect_status_env string -

Если cgi.force_redirect включена и вы работаете не под веб-сервером Apache или Netscape (iPlanet), вам может понадобится установить переменную окружения, которую будет искать PHP чтобы убедиться, что он может продолжать выполнение.

Замечание:

Установка этой переменной может повлечь за собой проблемы с безопасностью, так что вы должны знать, что вы делаете.

fastcgi.impersonate string -

FastCGI под IIS (в ОС на базе WINNT) поддерживает возможность имперсонации прав безопасности вызывающего клиента. Это позволяет IIS определить контекст безопасности, в котором выполняется запрос. mod_fastcgi под Apache на текущий момент не поддерживает эту возможность (03/17/2002). Установите в 1 при работе под IIS. Значение по умолчанию - ноль.

fastcgi.logging boolean -

Включает логирование SAPI при использовании FastCGI. Логирование включено по умолчанию.

cgi.rfc2616_headers int -

Сообщает PHP, какой тип заголовков использовать при отправке кода ответа HTTP. Если установлено в 0, PHP отправляет заголовок "Status:", который поддерживается Apache и другими веб-серверами. Если установлено в 1, PHP отправляет заголовок, соответствующий » RFC 2616. Оставьте в значении 0, если вы не уверены в том, что это значит.


Закачивание Файлов

Конфигурационные Опции Закачивания Файлов
Имя По умолчанию Место изменения Список изменений
file_uploads"1"PHP_INI_SYSTEMPHP_INI_ALL в PHP <= 4.2.3. Доступна с версии PHP 4.0.3.
upload_tmp_dirNULLPHP_INI_SYSTEM 
upload_max_filesize"2M"PHP_INI_PERDIRPHP_INI_ALL в PHP <= 4.2.3.
max_file_uploads20PHP_INI_SYSTEMДоступна с версии PHP 5.2.12.

Краткое разъяснение конфигурационных директив.

file_uploads boolean или integer -

Разрешать или не разрешать закачивание файлов. Смотрите также директивы upload_max_filesize, upload_tmp_dir и post_max_size.

Если используется integer, значение измеряется байтами. Вы также можете использовать сокращенную запись, которая описана в этом разделе FAQ.

upload_tmp_dir string -

Временная директория, используемая для хранения файлов во время закачивания. Должна быть доступна для записи пользователю, от имени которого запущен PHP. Если не указана, используется директория по умолчанию для вашей системы.

Если к указанной директории нет прав на запись, PHP откатится обратно к системной временной директории, используемой по умолчанию. Если включена директива open_basedir, то для успешной загрузки файлов системная директория по умолчанию должна быть разрешена.

upload_max_filesize integer -

Максимальный размер закачиваемого файла.

Если используется integer, значение измеряется байтами. Вы также можете использовать сокращенную запись, которая описана в этом разделе FAQ.

max_file_uploads integer -

Максимально разрешенное количество одновременно закачиваемых файлов. Начиная с PHP 5.3.4, пустые поля загрузки не рассматриваются этим ограничением.


Общий SQL

Конфигурационные Опции Общего SQL
Имя По умолчанию Место изменения Список изменений
sql.safe_mode"0"PHP_INI_SYSTEM 

Краткое разъяснение конфигурационных директив.

sql.safe_mode boolean -

Если включена, функции соединения с базой данных, использующие значения по умолчанию, будут использовать эти значения вместо передаваемых аргументов. Для значений по умолчанию смотрите документацию по функциям подключения соответствующей базы данных.

Описание на ru2.php.net
Описание на php.ru

.

Популярное:


Содержание:


Новое за неделю



Сейчас на сайте: 1643