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

Список включает встроенные директивы файла php.ini, которыми настраивают PHP. Директивы, которые обрабатываются модулями, перечисляют и подробно описывают страницы документации модулей. Например, информацию о директивах сессий даёт страница документации сессий.

> Замечание:

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

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

Опции языка и прочих настроек
Имя | По умолчанию | Место изменения | Список изменений
--- | --- | --- | ---
short_open_tag | "1" | `INI_PERDIR` |
precision | "14" | `INI_ALL` |
serialize_precision | "-1" | `INI_ALL` | До версии PHP 7.1.0 значение по умолчанию равнялось 17.
disable_functions | "" | Только `INI_SYSTEM` |
disable_classes | "" | Только php.ini | В PHP 8.5.0 директиву удалили.
exit_on_timeout | "" | `INI_ALL` |
expose_php | "1" | Только php.ini |
hard_timeout | "2" | `INI_SYSTEM` | Опция доступна с PHP 7.1.0.
zend.exception_ignore_args | "0" | `INI_ALL` | Опция доступна с PHP 7.4.0
zend.multibyte | "0" | `INI_ALL` |
zend.script_encoding | NULL | `INI_ALL` |
zend.detect_unicode | NULL | `INI_ALL` |
zend.signal_check | "0" | `INI_SYSTEM` |
zend.assertions | "1" | `INI_ALL` с ограничениями |
zend.exception_string_param_max_len | "15" | `INI_ALL` | Опция доступна с PHP 8.0.0.

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

`short_open_tag` bool

  Опция включает или отключает короткую форму записи открывающего PHP-тега: `<? ?>`. Опцию отключают при встраивании XML-разметки в PHP-скрипт, чтобы синтаксический анализатор не интерпретировал первые два символа XML-декларации `<?xml ?>` как короткий PHP-тег. При включённой директиве XML-декларацию выводят средствами PHP, например: `<?php echo '<?xml version="1.0"?>'; ?>`. При отключении опции в режим разбора PHP-кода переключаются длинной формой открывающего PHP-тега: `<?php ?>`.

  > Замечание:

  > Директива не влияет на сокращённую запись `<?=`, которая доступна как часть синтаксиса языка.

`precision` int
  Количество значащих цифр, отображаемых для чисел с плавающей точкой. Значение `-1` включает усовершенствованный алгоритм для округления таких чисел.
`serialize_precision` int
  Количество сохраняемых значащих цифр при сериализации чисел с плавающей точкой. Значение `-1` включает усовершенствованный алгоритм для округления таких чисел.
`expose_php` bool

  Опция сообщает о работе PHP на сервере, включая передачу версии PHP в HTTP-заголовке наподобие X-Powered-By: PHP/5.3.7.

`disable_functions` string
  Директива отключает отдельные функции. Опция принимает разделённый запятыми список названий функций. Начиная с PHP 8.0.0 отключение функции удаляет определение функции и разрешает переопределить функцию в пользовательском коде. До PHP 8.0.0 отключение функции только предотвращало вызов функции. Директива отключает только внутренние функции. Функция не затрагивает пользовательские функции. Директиву устанавливают только в файле php.ini. Опцию нельзя устанавливать в файле httpd.conf.
  Внимание

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

`disable_classes` string
  Директива отключает отдельные классы. Опция принимает разделённый запятыми список названий классов. Отключение класса только запрещает создавать экземпляр класса. Директива отключает только внутренние классы. Опция не затрагивает пользовательские классы. Директиву устанавливают только в файле php.ini. Опцию нельзя устанавливать в файле httpd.conf.
  Внимание

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

  Внимание

  Функциональность УДАЛЕНА в PHP 8.5.0.

`zend.assertions` int
  Со значением `1` проверочный код будет исполняться (режим разработки). При значении `0` PHP сгенерирует код проверок, однако, исполнять не будет. Со значением `-1`, проверочный код не будет генерироваться (продуктивный режим).

  > Замечание:

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

  > При запуске процесса в режиме разработки для директивы zend.assertions нельзя будет установить значение `-1` во время выполнения.

`zend.exception_string_param_max_len` int
  Максимальная длина аргументов строковой функции в строковых трассировках стека. Опиция принимает значение в диапазоне от `"0"` до `"1000000"`.
`hard_timeout` int

  После истечения времени ожидания, которое установили в директиве max_execution_time, среда выполнения PHP аккуратно отключит ресурсы. Если во время этого что-то застрянет, время ожидания установится на заданное количество секунд. После истечения жёсткого времени ожидания PHP завершит работу с ошибкой. При установке значения 0 жёсткое время ожидания не активируется.

  После истечения жёсткого времени ожидания и остановки PHP возникает ошибка наподобие:

              Fatal error: Maximum execution time of 30+2 seconds exceeded (terminated) in Unknown on line 0

`zend.exception_ignore_args` bool

  Исключает аргументы из трассировки стека, которая генерируется при исключениях.

`zend.multibyte` bool

  Директива разрешает разбор файлов с исходным кодом в многобайтовых кодировках. Опцию zend.multibyte включают для правильной интерпретации многобайтовых строковых данных в кодировках символов наподобие SJIS, BIG5. Для файлов в кодировках UTF-8, EUC и других совместимых с ISO-8859-1 кодировках активация опции не требуется.

  Режим разбора, который активируется директивой zend.multibyte, работает только при доступности модуля mbstring.

`zend.script_encoding` string

  PHP применяет значение только при отсутствии директивы declare(encoding=...) в начале скрипта. В кодировках, которые несовместимы с кодировкой ISO-8859-1, требуется включить и опцию zend.multibyte, и опцию zend.script_encoding.

  Литеральные строки транслитерируются из кодировки директивы zend.script_encoding в кодировку директивы mbstring.internal_encoding, как если бы вызвали функцию mb_convert_encoding().

`zend.detect_unicode` bool

  Определяет, проверять ли BOM (Byte Order Mark, метка порядка байтов) и корректность многобайтных символов в файле. Эта проверка производится до вызова __halt_compiler(). Доступна только в режиме Zend Multibyte.

`zend.signal_check` bool

  Определяет, проверять ли заменённые обработчики сигналов при завершении скрипта.

`exit_on_timeout` bool

  Директива работает только с модулем mod_php веб-сервера Apache1 и заставляет дочерний процесс Apache завершить работу при истечении времени ожидания выполнения PHP-скрипта. Превышение времени ожидания приводит к внутреннему вызову longjmp() в Apache1, который оставляет отдельные модули в несогласованном состоянии. По завершении процесса все неснятые блокировки или память очистятся.

## Ограничения ресурсов

Ограничения ресурсов
Имя | По умолчанию | Место изменения | Список изменений
--- | --- | --- | ---
memory_limit | "128M" | `INI_ALL` |

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

`memory_limit` int

  Директива задаёт предельный объем памяти в байтах, который разрешается выделять для работы скрипта. Ограничение исключает исчерпание доступной серверу памяти при ошибках в скрипте или попытках обработать данные за пределами ограничения. Значение `-1` отключает ограничение памяти.

  Объём измеряется в байтах, если значение параметра указали как целое число (int). Параметр также принимает значения в сокращённой нотации, которую описывает раздел FAQ.

Смотрите также описание директивы: max_execution_time.

## Настройка производительности

Настройка производительности
Имя | По умолчанию | Место изменения | Список изменений
--- | --- | --- | ---
realpath_cache_size | "4M" | `INI_SYSTEM` | До PHP 7.0.16 и 7.1.2 значение по умолчанию равнялось `"16K"`
realpath_cache_ttl | "120" | `INI_SYSTEM` |

> Замечание:

> Директива open_basedir отключит кеш realpath.

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

`realpath_cache_size` int

  Директива определяет размера кеша realpath, который будет использовать PHP. Это значение требуется увеличить в системах, в которых PHP открывает много файлов, чтобы отразить количество файловых операций, которые выполнил PHP.

  Размер — общее количество байтов в сохранённых строках путей, плюс размер данных, которые связаны с записью кеша. Это значит, что для хранения длинных путей в кеше, размер этого кеша должен быть больше. Это значение не определяет напрямую количество разных путей, которые PHP может закешировать.

  Размер, который требуется для кеширования, зависит от системы.

`realpath_cache_ttl` int

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

## Обработка данных

Конфигурационные опции обработки данных
Имя | По умолчанию | Место изменения | Список изменений
--- | --- | --- | ---
arg_separator.output | "&" | `INI_ALL` |
arg_separator.input | "&" | `INI_PERDIR` |
variables_order | "EGPCS" | `INI_PERDIR` |
request_order | "" | `INI_PERDIR` |
auto_globals_jit | "1" | `INI_PERDIR` |
register_argc_argv | "1" | `INI_PERDIR` | С PHP 8.5.0 директива устарела.
enable_post_data_reading | "1" | `INI_PERDIR` |
post_max_size | "8M" | `INI_PERDIR` |
auto_prepend_file | NULL | `INI_PERDIR` |
auto_append_file | NULL | `INI_PERDIR` |
default_mimetype | "text/html" | `INI_ALL` |
default_charset | "UTF-8" | `INI_ALL` |
input_encoding | "" | `INI_ALL` |
output_encoding | "" | `INI_ALL` |
internal_encoding | "" | `INI_ALL` |

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

`arg_separator.output` string

  Разделитель аргументов в URL-адресах, которые генерирует PHP.

`arg_separator.input` string

  Список разделителей, которые PHP применяет при разборе входных URL-адресов на переменные.

  > Замечание:

  > Каждый символ в директиве интерпретируется как разделитель!

`variables_order` string

  Устанавливает порядок обработки переменных EGPCS (`E`nvironment, `G`et, `P`ost, `C`ookie, и `S`erver). Например, если variables_order установлена в `"SP"`, то PHP создаст superglobals $_SERVER и $_POST, но не будет создавать $_ENV, $_GET и $_COOKIE. Установка в "" означает, что ни одна superglobals не будет установлена.

  Внимание

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

  > Замечание:

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

`request_order` string

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

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

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

`auto_globals_jit` bool

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

  Внимание

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

`register_argc_argv` bool
  Сообщает PHP, объявлять ли переменные argv и argc, которые заполняются GET-информацией. Смотрите также раздел «Работа с PHP из командной строки».
  Внимание

  Начиная с PHP 8.5.0 функциональность УСТАРЕЛА. Полагаться на функциональность настоятельно не рекомендуют.

  > Замечание: Поведение, при котором PHP заполняет элементы `$_SERVER['argc']` и `$_SERVER['argv']` из аргументов через серверный SAPI, а не в режиме CLI, устарело. Для доступа к информации лучше установить директиву `register_argc_argv=0` и переключиться на считывание аргументов либо из суперглобального массива $_GET, либо из элемента `$_SERVER['QUERY_STRING']`, но предварительно проверить безопасность перехода с аргументов на суперглобальные переменные.

`enable_post_data_reading` bool
  При отключении опции суперглобальные массивы $_POST и $_FILES не заполняются. Сырое тело запроса остаётся в потоке php://input, откуда данные считывают вручную или разбирают функцией request_parse_body(). Отключение опции полезно для проксирования запросов или обработки POST-данных с минимумом нагрузки на память.
`post_max_size` int
  Устанавливает максимально допустимый размер данных, отправляемых методом POST. Это значение также влияет на загрузку файлов. Для загрузки больших файлов это значение должно быть больше значения директивы upload_max_filesize. В сущности, memory_limit должна быть больше чем `post_max_size`. Объём измеряется в байтах, если значение параметра указали как целое число (int). Параметр также принимает значения в сокращённой нотации, которую описывает раздел FAQ. Если размер POST-данных больше значения директивы post_max_size, суперглобальные переменные $_POST и $_FILES будут пустыми. Это проверяют разными способами, например, передав переменную $_GET в скрипт, который обрабатывает данные, т. е. `<form action="edit.php?processed=1">`, а затем проверить, установлена ли переменная $_GET['processed'].

  > Замечание:

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

  Список изменений `post_max_size`
  Версия | Описание
  --- | ---
  5.3.4 | Установка `post_max_size` = 0 не снимет ограничение, если контент имеет тип application/x-www-form-urlencoded или не зарегистрирован в PHP.
  5.3.2 , 5.2.12 | Стало возможным снять ограничение на размер пост-запроса установкой `post_max_size` в 0.

`auto_prepend_file` string

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

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

`auto_append_file` string

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

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

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

`default_mimetype` string

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

  "media type" по умолчанию установлен как "text/html".

`default_charset` string

  "UTF-8" — значение по умолчанию и используется как кодировка по умолчанию для функций htmlentities(), html_entity_decode() и htmlspecialchars(), если параметр `encoding` не указали. Значение `default_charset` также используется для указания кодировки по умолчанию для функций iconv, если конфигурационные опции `iconv.input_encoding`, `iconv.output_encoding` и `iconv.internal_encoding` не установлены, и для функций mbstring, если не установлены `mbstring.http_input` `mbstring.http_output` `mbstring.internal_encoding`.

  Все версии PHP используют это значение как кодировку для стандартного заголовка Content-Type, отправляемого PHP, если этот заголовок не переопределён вызовом функции header().

  Не рекомендуется устанавливать `default_charset` в пустое значение.

`input_encoding` string

  Эта опция используется для многобайтных модулей, таких как mbstring и iconv. По умолчанию пусто.

`output_encoding` string

  Эта опция используется для многобайтных модулей, таких как mbstring и iconv. По умолчанию пусто.

`internal_encoding` string

  Эта опция используется для многобайтных модулей, таких как mbstring и iconv. По умолчанию пусто. В это случае используется default_charset.

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

Конфигурационные Опции Путей и Директорий
Имя | По умолчанию | Место изменения | Список изменений
--- | --- | --- | ---
include_path | ".;/path/to/php/pear" | `INI_ALL` |
open_basedir | NULL | `INI_ALL` |
doc_root | NULL | `INI_SYSTEM` |
user_dir | NULL | `INI_SYSTEM` |
user_ini.cache_ttl | "300" | `INI_SYSTEM` |
user_ini.filename | ".user.ini" | `INI_SYSTEM` |
extension_dir | "/path/to/php" | `INI_SYSTEM` |
extension | NULL | Только php.ini |
zend_extension | NULL | Только php.ini |
cgi.check_shebang_line | "1" | `INI_SYSTEM` |
cgi.discard_path | "0" | `INI_SYSTEM` |
cgi.fix_pathinfo | "1" | `INI_SYSTEM` |
cgi.force_redirect | "1" | `INI_SYSTEM` |
cgi.nph | "0" | `INI_SYSTEM` |
cgi.redirect_status_env | NULL | `INI_SYSTEM` |
cgi.rfc2616_headers | "0" | `INI_ALL` |
fastcgi.impersonate | "0" | `INI_SYSTEM` |
fastcgi.logging | "1" | `INI_SYSTEM` |

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

`include_path` string

  Указывает список директорий, в которых функции require, include, fopen(), file(), readfile() и file_get_contents() ищут файлы. Формат соответствует формату системной переменной окружения PATH: список директорий, разделённых двоеточием в Unix или точкой с запятой в Windows.

  При поиске подключаемых файлов PHP обрабатывает каждое значение директивы include_path отдельно. PHP проверяет первый путь и, если не находит файл, переходит к следующему, и так до обнаружения подключаемого файла или возврата ошибки уровня `E_WARNING` или `E_ERROR`. Значение директивы 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 доступ к файлам деревом каталогов, включая сам файл.

  Когда скрипт пытается получить доступ к файловой системе, например через выражение include или функцию fopen(), PHP проверяет расположение файла. PHP откажется получать доступ к файлу, когда файл лежит за пределами дерева каталогов. PHP разрешит каждую символическую ссылку, поэтому невозможно обойти ограничение через символическую ссылку. Символическая ссылка не разрешится, если файл не существует, а PHP будет сравнивать имя файла с разрешённым путём open_basedir.

  Опция open_basedir влияет не только на функции для работы с файловой системой; например, если СУБД `MySQL` настроили на работу с драйвером `mysqlnd`, директива open_basedir будет влиять на работу инструкции `LOAD DATA INFILE`. Большая часть расширенной функциональности PHP пользуется директивой `open_basedir` таким способом.

  Символ точки `.` указывает, что PHP будет использовать рабочий каталог скрипта как базовую директорию. Однако это снижает безопасность, поскольку рабочую директорию скрипта легко изменить функцией chdir().

  В файле httpd.conf директиву open_basedir можно отключить (например, для отдельных виртуальных хостов) как и другие конфигурационные директивы: "`php_admin_value open_basedir none`".

  В системах под управлением ОС Windows каталоги разделяют точкой с запятой. В остальных системах директории разделяют двоеточием. Когда PHP работает как модуль веб-сервера Apache, пути директивы open_basedir из родительских каталогов теперь автоматически наследуются.

  Ограничение, которое устанавливает директива open_basedir, — имя каталога, а не префикс.

  По умолчанию разрешается открывать все файлы.

  > Замечание: Значение директивы open_basedir можно сузить во время выполнения скрипта. Это означает, что если в файле php.ini для директивы open_basedir установили значение `/www/`, скрипт может сузить конфигурацию директивы до каталога `/www/tmp/` через функцию ini_set(). При перечислении ряда каталогов константу `PATH_SEPARATOR` указывают как разделитель путей, который не зависит от операционной системы. Начиная с PHP 8.3.0 директива open_basedir больше не принимает пути, в которых содержится родительский каталог `..`, когда значение устанавливают во время выполнения функцией ini_set().

  > Замечание:

  > Директива open_basedir установит для директивы realpath_cache_size значение `0`, которое отключит realpath-кеш.

  Предостережение

  Опция конфигурации `open_basedir` — просто дополнительная подстраховка, которая не претендует всесторонность, и поэтому на директиву нельзя полагаться, когда дело касается безопасности.

`doc_root` string

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

`user_ini.cache_ttl` int

`user_ini.filename` string

`user_dir` string

  Базовое имя директории, используемой в домашнем каталоге пользователя для PHP файлов, например, public_html.

`extension_dir` string

  В какой директории PHP должен искать динамически загружаемые модули. Рекомендуется указывать абсолютный путь. Смотрите также: enable_dl и dl().

`extension` string

  Какие динамически загружаемые модули должны быть загружены при старте PHP.

`zend_extension` string

  Имя динамически загружаемого модуля Zend (например, XDebug), который должен быть загружен при старте PHP.

`cgi.check_shebang_line` bool

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

`cgi.discard_path` bool

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

`cgi.fix_pathinfo` bool

  Обеспечивает поддержку правильных `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` bool

  Директива cgi.force_redirect поддерживает безопасность при запуске PHP в режиме CGI на большей части веб-серверов. PHP по умолчанию включает механизм проверки источника запроса и пропускает только запросы от веб-сервера, если значение директивы не определили. Директиву отключают на свой страх и риск.

  > Замечание:

  > Пользователям Windows: При запуске PHP на веб-сервере IIS опцию обязательно отключают. Предупреждение также относится к веб-серверам OmniHTTPD и Xitami.

`cgi.nph` bool

  При включении директивы cgi.nph PHP в режиме CGI принудительно возвращает заголовок Status: 200 на каждый запрос.

`cgi.redirect_status_env` string

  При включённой директиве cgi.force_redirect и запуске интерпретатора вне веб-сервера Apache или веб-сервера iPlanet компании Netscape иногда требуется установка переменной окружения, название которой PHP проверяет, прежде чем продолжить обработку запроса и начать выполнение скрипта.

  > Замечание:

  > Неправильная настройка переменной ослабляет защиту сервера, поэтому вначале изучают влияние директивы на безопасность, а затем определяют переменную.

`cgi.rfc2616_headers` bool

  Директива сообщает PHP, какой тип заголовков отправлять с HTTP-кодом ответа. При отключённой директиве PHP отправляет заголовок по стандарту » RFC 3875 — "Status:", который поддерживается Apache и другими веб-серверами. При включённой директиве PHP отправит заголовки, которые соответствуют стандарту » RFC 2616.

  При включённой директиве и работе PHP в CGI-окружении наподобие PHP-FPM вместо HTTP-заголовков ответа в стиле стандарта RFC 2616 потребуется использовать эквивалент этих заголовков из стандарта RFC 3875, например, вместо header("HTTP/1.0 404 Not found"); потребуется указать header("Status: 404 Not Found");

  Опцию включают, только если знают о последствиях.

`fastcgi.impersonate` bool

  Режим FastCGI на веб-серверах IIS под управлением ОС Windows NT поддерживает механизм имперсонации, при котором процесс вместе с клиентским токеном безопасности получает привилегии клиента, от имени которого поступил запрос. Механизм помогает веб-серверу IIS определять контекст безопасности, в котором выполняется запрос. На 17 марта 2002 модуль mod_fastcgi для веб-сервера Apache не поддерживает имперсонацию. Директиву включают при запуске PHP на веб-сервере IIS. По умолчанию опция отключена.

`fastcgi.logging` bool

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

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

Конфигурационные Опции Закачивания Файлов
Имя | По умолчанию | Место изменения | Список изменений
--- | --- | --- | ---
file_uploads | "1" | `INI_SYSTEM` |
upload_tmp_dir | NULL | `INI_SYSTEM` |
max_input_nesting_level | 64 | `INI_PERDIR` |
max_input_vars | 1000 | `INI_PERDIR` |
upload_max_filesize | "2M" | `INI_PERDIR` |
max_file_uploads | 20 | `INI_PERDIR` |

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

`file_uploads` bool

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

`upload_tmp_dir` string

  Каталог для временного хранения файлов при загрузке. Файлы загрузятся, только если каталог доступен для записи пользователю, от имени которого запустили PHP-процесс. PHP загрузит файлы в стандартный системный каталог для временных файлов, если значение директивы не указали.

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

`upload_max_filesize` int

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

  Значение директивы post_max_size указывают больше значения этой директивы.

  Объём измеряется в байтах, если значение параметра указали как целое число (int). Параметр также принимает значения в сокращённой нотации, которую описывает раздел FAQ.
`max_file_uploads` int

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

## Общий SQL

Конфигурационные Опции Общего SQL
Имя | По умолчанию | Место изменения | Список изменений
--- | --- | --- | ---
sql.safe_mode | "0" | `INI_SYSTEM` | Удалён в PHP 7.2.0

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

`sql.safe_mode` bool

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

  Внимание

  В PHP 7.2.0 опцию УДАЛИЛИ.

## Особые настройки для ОС Windows

Особые опции конфигурации для ОС Windows
Имя | По умолчанию | Место изменения | Список изменений
--- | --- | --- | ---
windows.show_crt_warning | "0" | `INI_ALL` |

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

`windows.show_crt_warning` bool

  При включении директивы выводятся предупреждения библиотеки C Runtime для ОС Windows.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open