Настройка во время выполнения

Поведение функций зависит от установок в файле php.ini.

Настройки PHP/Параметры конфигурации информации
Имя По умолчанию Место изменения Список изменений
assert.active "1" INI_ALL Устарело с PHP 8.3.0
assert.bail "0" INI_ALL Устарело с PHP 8.3.0
assert.warning "1" INI_ALL Устарело с PHP 8.3.0
assert.callback NULL INI_ALL Устарело с PHP 8.3.0
assert.quiet_eval "0" INI_ALL Удалено в PHP 8.0.0
assert.exception "1" INI_ALL До PHP 8.0.0 значение по умолчанию было "0". Устарело с PHP 8.3.0
enable_dl "1" INI_SYSTEM Функция устарела и ее удалят в будущем.
max_execution_time "30" INI_ALL  
max_input_time "-1" INI_PERDIR  
max_input_nesting_level "64" INI_PERDIR  
max_input_vars 1000 INI_PERDIR  
zend.enable_gc "1" INI_ALL  
zend.max_allowed_stack_size "0" INI_SYSTEM Доступна с PHP 8.3.0.
zend.reserved_stack_size "0" INI_SYSTEM Доступна с PHP 8.3.0.
fiber.stack_size   INI_ALL Доступна с PHP 8.1.0.
Дополнительную информацию и определения режимов INI_* даёт раздел «Места установки параметров конфигурации».

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

assert.active bool

Включение выполнение assert(). zend.assertions следует использовать вместо этого для управления поведением функции assert().

Внимание

Функциональность УСТАРЕЛА с PHP 8.3.0. Пользоваться функциональностью настоятельно не рекомендуют.

assert.bail bool

Завершение работы скрипта при провале проверки утверждений.

Внимание

Функциональность УСТАРЕЛА с PHP 8.3.0. Пользоваться функциональностью настоятельно не рекомендуют.

assert.warning bool

Вызов предупреждений PHP для каждой проваленной проверки утверждения.

Внимание

Функциональность УСТАРЕЛА с PHP 8.3.0. Пользоваться функциональностью настоятельно не рекомендуют.

assert.callback string

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

assert.quiet_eval bool
Внимание

Функциональность УДАЛИЛИ в PHP 8.0.0.

Используйте эту настройку функции error_reporting() во время выполнения проверки утверждений. При включении настройки сообщения об ошибках во время проверки утверждений показываться не будут (неявный вызов error_reporting(0)). Если настройка выключена, ошибки будут выдаваться в соответствии с настройками error_reporting()

assert.exception bool

Выбрасывает исключение AssertionError в случае неудачной проверки утверждения.

Внимание

Функциональность УСТАРЕЛА с PHP 8.3.0. Пользоваться функциональностью настоятельно не рекомендуют.

enable_dl bool

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

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

max_execution_time int

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

В системах, отличных от Windows, на максимальное время выполнения не влияют системные вызовы, потоковые операции и т.п. За дополнительной информацией обращайтесь к документации к функции set_time_limit().

Веб-серверы обычно имеют свои настройки времени ожидания, по превышении которого сами завершают выполнение скрипта PHP. В Apache есть директива Timeout, в IIS есть функция CGI timeout. В обоих случаях по умолчанию установлено 300 секунд. Точные значения можно узнать из документации к веб-серверу.

max_input_time int

Эта директива задаёт максимальное время в секундах, в течение которого скрипт должен разобрать все входные данные, переданные запросами вроде POST или GET. Это время измеряется от момента, когда PHP вызван на сервере до момента, когда скрипт начинает выполняться. Значение по умолчанию -1, что означает, что будет использоваться max_execution_time. Если установить равным 0, то ограничений по времени не будет.

max_input_nesting_level int

Задаёт максимальную глубину вложенности входных переменных (то есть $_GET, $_POST.)

max_input_vars int

Сколько входных переменных может быть принято в одном запросе (ограничение накладывается на каждую из глобальных переменных $_GET, $_POST и $_COOKIE отдельно). Использование этой директивы снижает вероятность сбоев в случае атак с использованием хеш-коллизий. Если входных переменных больше, чем задано директивой, выбрасывается предупреждение E_WARNING, а все последующие переменные в запросе игнорируются.

zend.enable_gc bool

Включает или отключает сборщик циклических ссылок.

zend.max_allowed_stack_size int

Максимальное пространство стека, которое операционная система позволяет занимать программе. Попытка занять больше места, чем позволяет операционная система, обычно приводит к жёсткому аварийному завершению работы, при этом отладочная информация будет недоступна. Чтобы облегчить отладку, движок выбрасывает ошибку Error до того, как это произойдёт (когда программа использует более zend.max_allowed_stack_size-zend.reserved_stack_size байт стека).

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

Для этого параметра возможны следующие значения:

  • 0: Автоматическое определение максимального пространства стека, которое операционная система позволяет занимать программе. Значение используется по умолчанию. Если определение невозможно, используется известное системное значение по умолчанию.
  • -1: Отключает проверку размера стека в движке.
  • Положительное целое число: Фиксированный размер в байтах. Слишком большое значение приведёт к тому же, что и отключение проверки размера стека.

Поскольку размер стека файберов определяется значением fiber.stack_size, значение этого параметра используется вместо zend.max_allowed_stack_size при проверке использования стека во время выполнения файбера.

Замечание:

Это не связано с переполнениями стека буфера и не является функцией безопасности.

zend.reserved_stack_size int

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

Для этого параметра возможны следующие значения:

  • 0: Автоматическое определение разумного размера.
  • Положительное целое число: Фиксированный размер в байтах.

fiber.stack_size int

Размер стека в байтах, выделенный для каждого файбера.

Значение по умолчанию - 1 Мбайт на системах с размером указателя менее 8 байт или 2 Мбайт в противном случае.

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top