Мой скрипт сравнивает 2 дерева источников, создает карту возможных измененных файлов, сравнивает хеши MD5 и создает diff-пакет.
После 28000-29000 файлов PHP завершает скрипт с ошибкой:
Неустранимая ошибка: максимальное время выполнения 0 секунд превышено в /root/_PACKER-TESTER/core/diff.class.php в строке 67 (стандартный вызов in_array ())
Я уже пытался установить max_input_time
на высокое значение (или ноль) – ничего.
Установка max_execution_time
до 99999999999999 ничего не делает …. такая же ошибка.
Попробуйте установить max_input_time = -1
в php.ini
или с помощью set_time_limit(-1)
. Это сработало для меня, не перестраивая PHP.
Эта статья объясняет это красиво.
Проблема решена, php
build с litespeed api (lsapi)
имеет дополнительную переменную env
для определения максимального времени выполнения – LSAPI_MAX_PROCESS_TIME
(по умолчанию 300 секунд).
Попробуйте set_time_limit () и зайдите в phpinfo (), если вы можете установить ограничение по времени:
set_time_limit(60*60);phpinfo();exit;
Я обнаружил, что «максимальное время выполнения с превышением 0 секунд» может быть вызвано тем, что код переходит в бесконечный цикл.
Например:
while (true) { ... }
вызывает эту ошибку для меня.
Если это не переменная среды (как упоминалось ранее), я бы рассмотрел, что находится на номере строки, сообщаемой php, с ошибкой