dr.Brain

doctor Brain

мир глазами веб-разработчика

Увеличиваем время выполнения скрипта

как изменить время выполнения скрипта в PHP

dr.Brain

время чтения 2 мин.

Photo by Agê Barros on Unsplash

Практически каждый из нас хоть раз встречался с фатальной ошибкой, обусловленной тем, что на выполнение PHP-скрипта не хватало времени - это было больно и обидно. По умолчанию в настройках PHP на выполнение скрипта отводится 30 секунд, но в некоторых случаях для этого требуется больше времени. В таком случае на помощь приходит встроенная функция ini_set(), которая принимает два строковых параметра: наименование настройки конфигурации PHP и новое значение настройки. В нашем случае первым параметром будет ‘max_execution_time’, а вторым - новое значение максимального времени выполнения скрипта в секундах.

Как увеличить время выполнения только для одного скрипта?

Для того, чтобы быстро исправить ситуацию с “тяжелым” скриптом, достаточно добавить код приведенный ниже в его начало:

ini_set('max_execution_time', 120); // 120 секунд = 2 минуты, можно заменить на любое требуемое время в секундах

В данном случае следует обратить внимание на пару моментов:

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

Как установить бесконечное время выполнения скрипта?

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

ini_set('max_execution_time', 0); // 0 = бесконечное выполнение скрипта

Как изменить время выполнения скрипта глобально?

Проблему времения выполнения скриптов можно решить глобально, внеся соответствующие изменения в файл настроек php.ini. Для этого необходимо сделать следующее:

  1. найдите папку с действующим ядром PHP,
  2. найдите актуальный файл php.ini и откройте его для редактирования,
  3. найдите строку, содержащую max_execution_time=30,
  4. замените 30 на нужное Вам значение в секундах,
  5. сохраните и закройте файл,
  6. перезапустите веб-сервер, для того чтобы изменения вступили в силу.

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


Спасибо за внимание.

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.