Моя проблема в том, что длинные скрипты php (несколько часов) выходят рано. (FireFox сообщает, что «соединение с сервером было сброшено во время загрузки страницы»).
Они выходят иногда через 30 минут, иногда через 1:45 часа работы.
Для FastCGI я добавил следующее в httpd.conf через редактор включений WHM в post_virtualhost:
<IfModule mod_fcgid.c>
FcgidBusyTimeout 86400
FcgidIOTimeout 86400
</IfModule>
После этого раздела IfModule у меня есть раздел <Directory path / to / mysite> (без пробела после '<').
Я много раз использую set_time_limit () и ignore_user_abort () в скрипте, чтобы он работал.
В журналах ошибок apache ничего нет.
phpinfo: http://lot-art.com/info.php (вы можете видеть, что set_time_limit () и ignore_user_abort () работают)
Он отлично работал на моем старом сервере, на котором выполнялся mod_php: http://216.119.148.91/info.php
Просто запустите скрипт отдельно от веб-сервера через cron / и т. Д.
Если вам нужно запустить его с веб-сервера ... popen (nohup ..) и запустите скрипт на кли ...
Я предполагаю, что соединение с веб-сервером / браузером истекает / не работает, и в конечном итоге стек TCP говорит: «Мы закончили здесь», и процесс php прерывается. Я бы не хотел представить окно браузера, ожидающее несколько часов, пока скрипт не запустится. полная ...
Если вы действительно хотите это сделать ... и проблема действительно связана с подключением клиента, вы можете посмотреть, как установить ignore-user-abort в значение true в скрипте / php.ini ...
Возможно ли, что это связано с ошибкой в PHP 5.5? Что-то вроде ошибки сегментации приведет к немедленному завершению работы php - не будет никаких ошибок, зарегистрированных в AFAIK.
Я согласен, что вам, вероятно, следует запустить его из командной строки, если это ошибка сегмента или что-то подобное, попробуйте запустить его gdb, чтобы получить дамп ядра и сообщить об этом как об ошибке здесь: https://bugs.php.net/
Если это не вариант, я бы попытался добавить к задаче ведение журнала, чтобы сузить круг задач, в которых завершается сценарий.