to read, 2.04K views since 2019.10.10 Read in english

Как устранить ошибку Maximum execution time of 30 seconds exceeded в php

Иногда, при запросе на страницу, можно получить ошибку 504 Gateway Time-out. Это значит что ваш php скрипт работал слишком долго и не успел справиться в заданное время с задачей

Что это за заданное время вообще ?

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

Решение

Достаточно вверху скрипта прописать

ini_set('max_execution_time', 100);

100 - количество секунд на выполнение

Можно установить max_execution_time = 0, тогда скрипт будет выполнятся столько, сколько ему нужно. Это не рекомендуется делать так как это может призводить к зависанию сервера.

Внимание Если у вас имеется доступ к файлу php.ini то можно прописать в нем значение этой директивы, тогда указывать его в каждом скрипте который нуждается в большем времени не будет, значение установленное в php.ini будет дефолтным. Например max_execution_time = 100.