В моем Plesk 11, PHP 5.4.7. Apache / 2.4.3, когда я делаю задания cron, я получаю эту ошибку из файла error.log.
[Tue Mar 19 21:33:18 2013] [warn] [client 88.44.55.66] mod_fcgid: read data timeout in 45 seconds [Tue Mar 19 21:33:18 2013] [error] [client 88.44.55.66] Premature end of script headers: index.php
Поэтому я проверил время выполнения с этим:
echo ini_get('max_execution_time');
Я получил это значение: 1560000
Это не похоже на проблему с тайм-аутом, но я получаю ошибку тайм-аута?
Ответ для будущей ссылки:
Измените /etc/httpd/conf.d/fcgid.conf с помощью vim.
Измените FcgidIOTimeout 45 на FcgidIOTimeout 600 .
Перезапустите Apache. Затем будет решен быстрый тайм-аут CGI.
Это время ожидания mod_fcgid , а не таймаут PHP. Взгляните на документацию mod_fcgid чтобы узнать, как ее изменить, особенно в FcgidIOTimeout .
Сценарии Cron, если правильно строить, не должны запускаться через apache. Ваша ошибка показывает, что вы используете таймаут, установленный mod_fcgi.
Если вы получаете доступ к нему через http в своем cronjob, то он будет работать как запрос веб-страницы, а затем он может быть затронут таймаутом apache, потому что apache участвует в этом процессе. Вы можете запустить php-скрипт напрямую с помощью абсолютного пути, используя php-интерпретатор для обхода apache