2015-04-14 1 views
1

Я перенесла сайт старых клиентов (Kohana 2.3) с одного из моих серверов на сторонний сервер, и теперь у меня есть преждевременный конец когда я пытаюсь экспортировать данные из своей базы данных или пытаюсь отправить электронные письма своим клиентам после 30-40 секунд обработки.Сайт перенесен на новый сервер, в результате чего возникает преждевременный конец ошибок заголовков скриптов при экспорте

Я попытался увеличить php.ini, чтобы максимально увеличить максимальный предел памяти и максимальный лимит времени, создавая ту же ошибку.

Я попытался вручную уменьшить количество элементов, которые будут экспортированы, и заставить его запускать сценарий без ошибок для чего-то между 700-750 элементами, но это происходит вверх и вниз всякий раз, когда я запускаю скрипт. Живые данные, которые я использую, содержат более 5000 элементов.

Запуск memory_get_peak_usage возвращает, что я использую максимум 16 МБ памяти для выполнения этих сценариев, поэтому я уверен, что я не перейду ни на какие пределы памяти, так как мой предел памяти php равен 256 МБ.

Установка временного ограничения в php до 5 секунд приведет к возникновению ошибки тайм-аута вместо ошибки преждевременного конца скриптов, но, как ожидается, это не поможет.

Странно, что ничто не записывается ни в какие журналы. Я проверил журналы php, журналы Kohana и журналы apache, и нет ничего, что, кажется, указывает мне в сторону того, что может вызвать эту проблему.

Мне было интересно, если кто-то столкнулся с этим раньше или имел какие-либо идеи, с которыми мне следует пойти с этим.

+0

Оказалось, что это максимальная проблема с временными ограничениями ЦП. Код превысил RLIMIT_CPU. Поднятие этого разрешило экспорт без проблем. –

ответ

0

Проверьте, есть ли у вас файл /var/log/apache/suexec.log; если это так, и если это проблема, это объяснит причину, по которой он отказывается от правильного выполнения вашего сценария. Одно простое исправление: добавить «-w» в конец первой строки вашего Perl-скрипта, т. Е. Изменить первую строку с «#!/Usr/bin/perl» на «#!/Usr/bin/perl -w "и посмотреть, делает ли это suEXEC счастливым. Еще одно общее решение - убедиться, что ваш CGI-скрипт имеет то же имя пользователя и группы, что и ваша папка cgi-bin.