Как устранить ошибку Maximum execution time of 30 seconds exceeded в php
lang_of_article_differ
want_proper_trans
Иногда, при запросе на страницу, можно получить ошибку 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
.