Intereting Posts
Как я могу интерполировать существующий литерал строки php внутри json-файла? Разрешить пользователям скачивать файлы за пределами webroot Понимание простого класса с помощью магических методов Использует microtime () для создания неудачных методов токена сброса пароля как я могу получить идентификатор входа пользователя из mysql с помощью глобальной переменной в моем приложении для Android? Ухудшение доктрины PHP: загрузка моделей не работает ..? Разбор доменного имени только из URL-адреса в PHP Laravel 4: использование контроллера для переадресации страницы, если сообщение не существует. Как я могу выводить эти динамические данные без eval? Facebook require_login не работает Как отправлять POST-данные в файл php с помощью AJAX Laravel 5.1: включение ограничений внешнего ключа SQLite Очень простой вопрос о переписывании мое соединение pdo не работает Действительно ли работает статическая анонимная функция PHP?

PHP set_time_limit никакого эффекта

У меня очень болезненный медленный скрипт, который получает множество данных из 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, и ваш скрипт все же умрет, причина может быть где-то еще в вашем коде