Мой PHP-CGI начал обслуживать пустые страницы без видимой причины, пока я не перезапустил процесс.
Я хочу знать почему.
К сожалению, в «производственном» файле конфигурации PHP по умолчанию нет error_log. В моем журнале ошибок Nginx также не было ошибок, связанных с PHP. Это, наверное, безнадежный случай, но на всякий случай прошу.
Вот моя установка
Есть идеи, что могло вызвать ошибку?
Обновить
Думаю, я изолировал проблему. Я использовал Monit для автоматического перезапуска PHP всякий раз, когда он начинал гасить. Мои журналы ошибок PHP пусты.
Но я понял, что если я отключу плагин Wordpress под названием WP-SuperCache, мой PHP перестанет сбрасываться каждые ~ 10 часов. Пока мой PHP работает 3 дня подряд. Есть ли у кого-нибудь предложения по этому поводу?
Supercache генерирует полные кэшированные версии страниц, а также выполняет какое-то другое внутреннее кэширование, возможно, в ситуациях с высокой нагрузкой есть какие-то проблемы с синхронизацией. Я бы проверил вашу папку кеша, чтобы убедиться, что в ней нет пустых файлов. Если это так, вероятно, у вас проблема с блокировкой файлов. Решение такой проблемы может быть непростым и, вероятно, потребует от вас открытия сообщения об ошибке, поскольку, скорее всего, проблема связана с самим кодом.
Это обычная проблема, лучшее, что вы можете сделать, - это каждую ночь перезапускать spawn-fcgi и просматривать журналы ошибок. Здесь можно найти небольшую программу logwatch на Python, которая перезапустит ваш php.
http://hostingfu.com/article/keeping-your-php-fastcgi-processes-alive
Проверьте статус ответа ваших запросов, если это повторится снова (например, curl -i), и если статус не 200, проверьте свои страницы с ошибками (в частности, те, для которых указан номер ошибки) и убедитесь, что они не установлен для перенаправления таким образом, который может вызвать бесконечный цикл.
Если статус ответа - 200, проверьте, есть ли в ответе какой-либо текст, кроме заголовков HTTP.
пытались ли вы фактически остановить службу fcgi и запустить ее снова, а не перезапускать. у меня были подобные странные вещи при перезапуске fcgi
Не ответ, а предложение - заменить spawn-fcgi на php-fpm это более настраиваемое.
PS. возможно, у вас есть специальное перенаправление страницы ошибки 50x в nginx.conf
UPD: сегодня я столкнулся с аналогичной проблемой, когда nginx + php начал обслуживать пустые страницы. Мое исследование показало, что он отправляет пустую страницу независимо от того, что php вызывает исключение. Может быть, это какая-то директива php.ini, которая выдавала пустое место вместо ошибки. Я должен изучить журналы и т.д ... протереть.
UPD2: Посмотрите на свой php.ini, в нем есть 2 параметра, которые вам нужно изменить, чтобы увидеть ошибки php:
error_reporting = E_ALL & ~E_NOTICE
display_errors = On
Пункт «спонтанно произошел в одночасье» звучит интересно ... Возможно ли, что ваш хост начал добавлять дополнительные заголовки статуса ко всему трафику? Если это так, возможно, вы столкнулись с этой ошибкой:
Joomla! php, FastCGI, пустая страница и повторяющийся заголовок «Статус»