PHP-CGI начал обслуживать пустые страницы

8

Мой PHP-CGI начал обслуживать пустые страницы без видимой причины, пока я не перезапустил процесс.

Я хочу знать почему.

К сожалению, «рабочий» конфигурационный файл PHP не имеет error_log по умолчанию. Мой журнал ошибок Nginx также не отображал ошибок, связанных с PHP. Это, вероятно, безнадежный случай, но я спрашиваю на всякий случай.

Вот моя установка

  • Nginx 0.8.2
  • PHP 5.2.6-3ubuntu4.1 с Suhosin-Patch 0.9.6.2 (cli) (сборка: 23 апреля 2009 14:37:14)
  • PHP APC 3.0.19-2
  • spawn-fcgi v1.6.2 (ipv6) - оболочка fastcgi от lighttpd

Есть идеи, что могло вызвать ошибку?

Обновить

Я думаю, что я изолировал проблему. Я использовал Monit для автоматического перезапуска PHP, когда он начинал гасить. Мои журналы ошибок PHP пустые.

Но я понял, что если я отключу плагин Wordpress под названием WP-SuperCache, мой PHP перестанет сбрасываться каждые ~ 10 часов. Пока мой PHP работает уже 3 дня подряд. У кого-нибудь есть предложения по этому поводу?

неизвестный
источник

Ответы:

2

Supercache генерирует полные кешированные версии страниц, а также выполняет некоторое другое внутреннее кэширование, возможно, существует некоторая проблема с синхронизацией в ситуациях высокой нагрузки. Я бы проверил вашу папку кеша, чтобы убедиться, что она не содержит пустых файлов. Если это так, возможно, у вас проблема с блокировкой файлов. Решение такой проблемы может быть сложным и, вероятно, потребует от вас открыть тикет с ошибкой, так как это, скорее всего, проблема с самим кодом.

Эрик
источник
1

Вы пытались фактически остановить службу fcgi и запустить ее снова, а не перезапустить. у меня были похожие странные вещи при перезапуске fcgi

seanl
источник
1
Проблема не в перезапуске. Это спонтанно произошло внезапно, когда я получил кучу посетителей из свалки ссылок под названием Reddit.
Неизвестно
1

Проверьте статус ответа на ваши запросы, если это произойдет снова (например, curl -i), и если статус не равен 200, проверьте страницы с ошибками (в частности, те страницы с указанным номером ошибки) и убедитесь, что это не так. установить для перенаправления таким образом, что может вызвать бесконечный цикл.

Если статус ответа 200, проверьте, есть ли в ответе какой-либо текст, кроме заголовков HTTP.


источник
Полагаю, мне следовало это сделать, но я уже перезапустил PHP, чтобы люди могли просматривать страницу. Я не видел никаких ошибок в моем журнале сервера.
неизвестно
1

Это обычная проблема, лучшее, что вы можете сделать, это каждую ночь перезапускать spawn-fcgi и просматривать журналы ошибок. Небольшая программа Python LogWatch, которая перезапустит ваш PHP, можно найти здесь.

http://hostingfu.com/article/keeping-your-php-fastcgi-processes-alive

reconbot
источник
1

Не ответ, но предложение - замените spawn-fcgi на php-fpm, это более настраиваемо.

PS. может быть, у вас есть специальная 50-кратная ошибка перенаправления страницы в nginx.conf

UPD: сегодня я столкнулся с подобной проблемой, когда nginx + php начал обслуживать пустые страницы. Мое исследование показало, что он отправляет пустую страницу независимо от того, что php выдал исключение. Может быть, это какая-то директива php.ini, которая служит пустым вместо ошибки. Я должен изучить журналы и т. Д. Вайп.

UPD2: посмотрите на ваш php.ini, в нем есть 2 параметра, которые вам нужно изменить, чтобы увидеть ошибки php:

error_reporting = E_ALL & ~E_NOTICE
display_errors = On
SaveTheRbtz
источник
0

Выражение «самопроизвольно произошло за одну ночь» звучит интересно ... Возможно ли, что ваш хост начал добавлять дополнительные заголовки статуса ко всему трафику? Если это так, вы можете увидеть эту ошибку:

Joomla! php, FastCGI, пустая страница и дубликат заголовка «Статус»

DreadPirateShawn
источник
Я так не думаю. Я контролирую хозяина.
неизвестно