Этот список включает встроенные директивы php.ini, которые вы можете использовать для настройки PHP. Директивы, которые обрабатываются модулями, перечислены и подробно описаны на страницах документаций соответствующих модулей. К примеру, информация о директивах сессий может быть найдена на странице документации сессий.
Имя | По умолчанию | Место изменения | Список изменений |
---|---|---|---|
async_send | "0" | PHP_INI_ALL |
Имя | По умолчанию | Место изменения | Список изменений |
---|---|---|---|
short_open_tag | "1" | PHP_INI_ALL | PHP_INI_ALL в PHP <= 4.0.0. PHP_INI_PERDIR в PHP < 5.3.0 |
asp_tags | "0" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.0.0. |
precision | "14" | PHP_INI_ALL | |
y2k_compliance | "1" | PHP_INI_ALL | |
allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | PHP_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 |
detect_unicode | "1" | PHP_INI_ALL | Доступна начиная с версии PHP 5.1.0. Эта устаревшая возможность будет обязательно удалена в будущем. |
Краткое разъяснение конфигурационных директив.
Определяет, разрешается ли короткая форма записи
(<? ?>
) тегов PHP.
Если вы хотите использовать PHP совместно с XML, вы можете
отключить эту опцию, чтобы беспрепятственно использовать
<?xml ?>
. В противном случае, вы можете
отобразить это при помощи PHP, например:
<?php echo '<?xml version="1.0"?>'; ?>
.
Если же эта опция отключена, вы должны использовать длинную форму
открывающего тега PHP (<?php ?>
).
Замечание:
Эта директива также влияет на сокращение
<?=
, которое идентично записи<? echo
. Для использования этого сокращения, директиваshort_open_tag
должна быть включена.
Нужно ли выводить предупреждение, если аргументы передаются по ссылке при вызове функции. Рекомендуется указывать в объявлении функции передаваемые по ссылке аргументы. Попробуйте выключить эту опцию и убедиться, что ваши скрипты правильно работают без неё и что они будут работать с будущими версиями языка (вы будете получать предупреждение каждый раз, когда вы будете пользоваться этой возможностью).
Передача аргументов по ссылке во время вызова функции была объявлена устаревшей из соображений чистоты кода. Функция может менять свои аргументы недокументированным способом, если бы аргумент не объявлялся передаваемым по ссылке. Чтобы избежать побочных эффектов, лучше явно указывать, какие аргументы передаются по ссылке только при объявлении функции.
В PHP5, allow_call_time_pass_reference была помечена устаревшей, в версиях до PHP 5.3.0 использование этой возможности вызовет ошибку уровня E_COMPILE_WARNING, а в версиях PHP 5.3.0+ - уровня E_DEPRECATED.
См. также Подробное описание ссылок.
Определяет, разрешено ли PHP выдавать факт своего присутствия на сервере (например, добавляя свою подпись в заголовок веб-сервера). Ни в коей мере это не является угрозой безопасности, но это даёт возможность определить, используете ли вы PHP на своём сервере.
Эта директива позволяет отключить некоторые функции по причинам безопасности. Она принимает список имен функций, разделенный запятыми. disable_functions не подвержена влиянию безопасного режима.
Только внутренние функции могут быть отключены с помощью этой директивы. Пользовательские функции ей не подвержены.
Эта директива должна быть установлена в php.ini. Например, ее нельзя использовать в httpd.conf.
Замечание: Замечание о доступности
Эта директива стала доступной в PHP 4.3.2
Включает режим совместимости с Zend Engine 1 (PHP 4). Это влияет на клонирование, приведение типов (объекты без свойств приводятся к FALSE или 0) и сравнение объектов. В этом режиме объекты по умолчанию передаются по значению вместо ссылки.
См. также раздел Миграция из PHP 4 в PHP 5.
Эта возможность была помечена УСТАРЕВШЕЙ и БЫЛА УДАЛЕНА начиная с версии PHP 5.3.0.
Определяет, нужно ли проверять BOM (Byte Order Mark, метка порядка байт) и корректность мультибайтных символов в файле. Эта проверка производится до вызова __halt_compiler(). Доступна только в режиме Zend Multibyte.
Имя | По умолчанию | Место изменения | Список изменений |
---|---|---|---|
memory_limit | "128M" | PHP_INI_ALL | "8M" до PHP 5.2.0, "16M" в PHP 5.2.0 |
Краткое разъяснение конфигурационных директив.
Эта директива задаёт максимальный объём памяти в байтах, который разрешается использовать скрипту. Это помогает предотвратить ситуацию, при которой плохо написанный скрипт съедает всю доступную память сервера. Для того, чтобы убрать ограничения, установите значение этой директивы в -1.
В версиях до PHP 5.2.1 для использования этой директивы, она должна была быть указана на этапе компиляции. Так, ваша строка конфигурации должна была включать: --enable-memory-limit . Эта опция компиляции была также необходима для использования функций memory_get_usage() и memory_get_peak_usage() до версии 5.2.1.
Если используется integer, значение измеряется байтами. Вы также можете использовать сокращённую запись, которая описана в этом разделе FAQ.См. также: max_execution_time.
Название | Значение по умолчанию | Место изменения | История изменений |
---|---|---|---|
realpath_cache_size | "16K" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.1.0. |
realpath_cache_ttl | "120" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.1.0. |
Краткое разъяснение конфигурационных директив.
Определяет размера кэша realpath, используемого в PHP. Это значение должно быть увеличено на системах, в которых PHP открывает большое количество файлов соответственно количеству выполняемых файловых операций.
Время (в секундах) в течение которого будет использован кэш realpath для указанного файла или директории. Для систем с редко меняющимися файлайми это значение можно увеличить.
Имя | По умолчанию | Место изменения | Список изменений |
---|---|---|---|
track_vars | "On" | PHP_INI_?? | |
arg_separator.output | "&" | PHP_INI_ALL | Доступна начиная с версии PHP 4.0.5. |
arg_separator.input | "&" | PHP_INI_PERDIR | Доступна начиная с версии PHP 4.0.5. |
variables_order | "EGPCS" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 5.0.5. |
request_order | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR | Доступна начиная с версии PHP 5.3.0 |
auto_globals_jit | "1" | PHP_INI_PERDIR | Доступна начиная с версии PHP 5.0.0. |
register_globals | "0" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3. |
register_argc_argv | "1" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3. |
register_long_arrays | "1" | PHP_INI_PERDIR | Доступна начиная с версии PHP 5.0.0. Помечена устаревшей в PHP 5.3.0. Эта устаревшая возможность будет обязательно удалена в будущем. |
post_max_size | "8M" | PHP_INI_PERDIR | PHP_INI_SYSTEM в PHP <= 4.2.3. Доступна начиная с версии PHP 4.0.3. |
gpc_order | "GPC" | PHP_INI_ALL | |
auto_prepend_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3. |
auto_append_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3. |
default_mimetype | "text/html" | PHP_INI_ALL | |
default_charset | "" | PHP_INI_ALL | |
always_populate_raw_post_data | "0" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3. Доступна начиная с версии PHP 4.1.0. |
allow_webdav_methods | "0" | PHP_INI_PERDIR |
Краткое разъяснение конфигурационных директив.
Если включено, переменные окружения, GET, POST, Cookie и серверные переменные могут быть получены через глобальные ассоциативные массивы $_ENV, $_GET, $_POST, $_COOKIE и $_SERVER.
Обратите внимание, что начиная с версии PHP 4.0.3, track_vars
всегда включена.
Этот разделитель используется в генерируемых PHP URL в качестве разделителя аргументов.
Список разделителей, используемых PHP для получения переменных из URL.
Замечание:
Каждый символ в этой директиве считается разделителем!
Устанавливает порядок обработки переменных 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.
Эта директива регулирует порядок, в котором PHP добавляет переменные GET, POST и Cookie в массив _REQUEST. Добавление производится слева направо, новые значения перезаписывают старые.
Если значение этой директивы не установлено, для содержимого переменной $_REQUEST используется значение директивы variables_order.
Учтите, что файлы php.ini, поставляемые с дистрибутивом, по соображениям безопасности не содержат значение 'C' (cookies).
Когда включено, переменные SERVER и ENV создаются в тот момент, когда они впервые используются (Just In Time), а не в начале выполнения скрипта. Если эти переменные в скрипте не используются, включение этой директивы приведёт к росту производительности.
Директивы PHP register_globals, register_long_arrays и register_argc_argv должны быть выключены для правильной работы этой директивы. Начиная с версии PHP 5.1.3 стало необязательно выключать register_argc_argv.
Использование переменных SERVER и ENV проверяется на стадии компиляции, поэтому их использование с помощью, например, переменных переменных не запустит их инициализацию.
Регистрировать или нет переменные 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 эта возможность считается УСТАРЕВШЕЙ. Крайне не рекомендуется полагаться на эту возможность.
С версии PHP 5.3.0 эта возможность считается УСТАРЕВШЕЙ. Крайне не рекомендуется полагаться на эту возможность.
Замечание:
PHP разрешает сокращения значений бит, включая K (кило), M (мега) и G (гига). PHP автоматически преобразует все эти сокращения. Будьте осторожны не превысить порог 32-битного знакового целого (если вы используете 32-битную версию), так как это приведет к ошибке вашего скрипта.
Устанавливает порядок обработки переменных GET/POST/COOKIE. Значением по умолчанию для этой директивы является "GPC". Установка её в "GP", к примеру, приведёт к тому, что PHP будет полностью игнорировать cookies и перезапишет любую GET-переменную POST-переменной с таким же именем.
Замечание:
Эта опция не доступна в PHP 4. Вместо неё используйте variables_order.
Определяет имя файла, который будет автоматически обрабатываться перед основным файлом. Файл вызывается так, будто он был подключён при помощи функции require(), так что include_path также используется.
Специальное значение none отключает эту директиву.
Определяет имя файла, который будет автоматически обрабатываться после основного файла. Файл вызывается так, будто он был подключён при помощи функции require(), так что include_path тоже используется.
Специальное значение none отключает эту директиву.
Замечание: Если скрипт завершает работу при помощи exit(), auto_append_file НЕ выполняется.
PHP всегда отправляет кодировку по умолчанию в заголовке Content-Type. Чтобы отключить отправку кодировки, просто установите её пустой строкой.
Всегда заполнять переменную $HTTP_RAW_POST_DATA, содержащую "сырые" POST-данные. В противном случае, переменная будет заполнена только при неопознанном MIME типе данных. Однако, предпочтительным способ доступа к "сырым" POST-данным является php://input. $HTTP_RAW_POST_DATA недоступна при enctype="multipart/form-data".
Разрешает обработку 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_basedir | NULL | PHP_INI_ALL | PHP_INI_SYSTEM in PHP < 5.3.0 |
doc_root | NULL | PHP_INI_SYSTEM | |
user_dir | NULL | PHP_INI_SYSTEM | |
extension_dir | "/path/to/php" | PHP_INI_SYSTEM | |
extension | NULL | php.ini only | |
zend_extension | NULL | php.ini only | |
zend_extension_debug | NULL | php.ini only | |
zend_extension_debug_ts | NULL | php.ini only | |
zend_extension_ts | NULL | php.ini only | |
cgi.check_shebang_line | "1" | PHP_INI_SYSTEM | Available since 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_env | NULL | PHP_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. |
Краткое разъяснение конфигурационных директив.
Указывает список директорий, в которых функции 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 каждый раз проверять текущую директорию при подключении каждого файла.
Ограничивает файлы, которые могут быть открыты с помощью 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()
"Корневая директория" PHP на этом сервере. Используется только в случае, если не пустая. Если PHP сконфигурирован с безопасный режим, файлы вне этой директории не обрабатываются. Если PHP не был скомпилирован с FORCE_REDIRECT, вам следует установить doc_root, если вы используете PHP в качестве CGI под любым веб-сервером (кроме IIS). Альтернативой является использование конфигурационной директивы cgi.force_redirect, речь о которой идёт ниже.
Базовое имя директории, используемой в домашнем каталоге пользователя для PHP файлов, например, public_html.
В какой директории PHP должен искать динамически загружаемые расширения. См. также: enable_dl и dl().
Какие динамически загружаемые расширения должны быть загружены при старте PHP.
Абсолютный путь до динамически загружаемого расширения Zend (например, APD), которое должно быть загружено при старте PHP.
Вариант zend_extension для расширений, скомпилированных с отладочной информацией.
Вариант zend_extension для потокобезопасных расширений, скомпилированных с отладочной информацией.
Вариант zend_extension для потокобезопасных расширений.
Контролирует, нужно ли проверять первую строку CGI PHP-скрипта на содержание #! (shebang). Эта строка может быть необходима, если скрипт должен поддерживать как отдельный запуск, так и с помощью PHP CGI. PHP в режиме CGI пропускает эту строку и игнорирует ее содержимое, если данная директива включена.
Обеспечивает поддержку правильных 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 необходима для обеспечения безопасности во время работы PHP в качестве CGI под большинством веб-серверов. Если оставить ее неопределённой, по умолчанию PHP включает эту директиву. Вы можете выключить её на свой страх и риск.
Замечание:
Пользователям Windows: Вы можете безопасно выключить её под IIS. Более того, вы должны это сделать. Чтобы заставить OmniHTTPD или Xitami работать, вы должны отключить эту директиву.
Если cgi.force_redirect включена и вы работаете не под веб-сервером Apache или Netscape (iPlanet), вам может понадобится установить переменную окружения, которую будет искать PHP чтобы убедиться, что он может продолжать выполнение.
Замечание:
Установка этой переменной может повлечь за собой проблемы с безопасностью, так что вы должны знать, что вы делаете.
FastCGI под IIS (в ОС на базе WINNT) поддерживает возможность имперсонации прав безопасности вызывающего клиента. Это позволяет IIS определить контекст безопасности, в котором выполняется запрос. mod_fastcgi под Apache на текущий момент не поддерживает эту возможность (03/17/2002). Установите в 1 при работе под IIS. Значение по умолчанию - ноль.
Включает логирование SAPI при использовании FastCGI. Логирование включено по умолчанию.
Сообщает PHP, какой тип заголовков использовать при отправке кода ответа HTTP. Если установлено в 0, PHP отправляет заголовок "Status:", который поддерживается Apache и другими веб-серверами. Если установлено в 1, PHP отправляет заголовок, соответствующий » RFC 2616. Оставьте в значении 0, если вы не уверены в том, что это значит.
Имя | По умолчанию | Место изменения | Список изменений |
---|---|---|---|
file_uploads | "1" | PHP_INI_SYSTEM | PHP_INI_ALL в PHP <= 4.2.3. Доступна начиная с версии PHP 4.0.3. |
upload_tmp_dir | NULL | PHP_INI_SYSTEM | |
upload_max_filesize | "2M" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3. |
max_file_uploads | 20 | PHP_INI_SYSTEM | Available since PHP 5.2.12. |
Краткое разъяснение конфигурационных директив.
Разрешать или не разрешать закачивание файлов. См. также директивы upload_max_filesize, upload_tmp_dir и post_max_size.
Если используется integer, значение измеряется байтами. Вы также можете использовать сокращённую запись, которая описана в этом разделе FAQ.Временная директория, используемая для хранения файлов во время закачивания. Должна быть доступна для записи пользователю, от имени которого запущен PHP. Если не указана, используется директория по умолчанию для вашей системы.
Если к указанной директории нет прав на запись, PHP откатится обратно к системной временной директории, используемой по умолчанию. Если включена директоива open_basedir, то для успешной загрузки файлов системная директория по умолчанию должна быть разрешена.
Максимальный размер закачиваемого файла.
Если используется integer, значение измеряется байтами. Вы также можете использовать сокращённую запись, которая описана в этом разделе FAQ.Максимально разрешенное количество одновременно закачиваемых файлов. Начиная с PHP 5.3.4, пустые поля загрузки не рассматриваются этим ограничением
Имя | По умолчанию | Место изменения | Список изменений |
---|---|---|---|
sql.safe_mode | "0" | PHP_INI_SYSTEM |
Краткое разъяснение конфигурационных директив.
Если включена, функции соединения с базой данных, использующие значения по умолчанию, будут использовать эти значения вместо передаваемых аргументов. Для значений по умолчанию смотрите документацию по функциям подключения соответствующей базы данных.