У меня очень болезненный медленный скрипт, который получает множество данных из MySQL и создает из него большой отчет, который он служит пользователю в конце в качестве приложения / принудительной загрузки.
Короче говоря, на производственном сервере он заканчивается примерно через 30 секунд (довольно последовательно) и вместо этого выплевывает пустой файл. На сервере разработки он работает нормально, но выполнение занимает значительно больше времени – около 90 секунд. Чтобы быть «безопасным», я установил свой файл php.ini в max_execution_time = 2000
а также запустил set_time_limit(4000)
в начале моего скрипта (число номеров превышает ожидаемое время завершения, но, чтобы быть уверенным;)).
Что может привести к тому, что мой веб-сервер игнорирует установленные мной временные рамки и выйдет на меня через 30 секунд?
Редактирование: одна вещь, которую я точно знаю, состоит в том, что для завершения требуется часть MySQL кода 8-9 секунд, и она успешно проходит мимо этого пункта каждый раз.
Возможно, PHP safe_mode.
Попробуйте сделать
die(ini_get('max_execution_time'))
прочитать значение после того, как вы вызвали set_time_limit(0);
чтобы увидеть, действительно ли оно перезаписано.
Если он будет заменен на 0, и ваш скрипт все же умрет, причина может быть где-то еще в вашем коде