У меня есть скрипт, который генерирует отчет для клиента в виде CSV, записывает его в файл, а затем используетreadfile()
выводить в браузер.
У меня возникла проблема, из-за которой большой отчет (на создание которого уходит около 11 минут, размером около 700 КБ) выдает ошибку 500. Apache говорит: «Время ожидания скрипта истекло до возвращения заголовков»
Я пытался использовать set_time_limit(0)
в скрипте и установка max_execution_time в php.ini на 900 (15 минут) безрезультатно. я имею error_log()
вызывает электронную почту по всему сценарию, и они сообщают, что сценарий был сгенерирован, и ini_get('max_execution_time')
внутри скрипта возвращается 0 (я предполагаю, что это означает неограниченное).
Если я вхожу через SSH и запускаю скрипт, используя php scriptname.php, он работает нормально и выводит CSV в оболочку.
Может ли быть другой параметр, возможно, внутри Apache, который вызывает проблему тайм-аута? Я знаю, что мне следует перенести этот скрипт в хрон, но сейчас время — это проблема (не всегда с клиентами), поэтому я хотел бы просто решить проблему с тайм-аутом.
Задача ещё не решена.
Других решений пока нет …