web-dev-qa-db-ja.com

PHP-CGIが空白ページの提供を開始

私のPHP-CGIは、プロセスを再開するまで、明白な理由もなく空白ページの提供を開始しました。

理由を知りたい。

残念ながら、PHPの「本番」構成ファイルにはデフォルトでerror_logがありません。私のNginxエラーログにもPHPに関連するエラーは表示されませんでした。これはおそらく絶望的なケースですが、念のためにお願いしています。 。

これが私のセットアップです

  • Nginx 0.8.2
  • PHP 5.2.6-3ubuntu4.1とSuhosin-パッチ0.9.6.2(cli)(ビルド:2009年4月23日14:37:14)
  • PHP APC 3.0.19-2
  • spawn-fcgi v1.6.2(ipv6)-lighttpdのfastcgiラッパー

エラーの原因となった可能性のあるアイデアはありますか?

更新

私は問題を切り分けたと思います。私はMonitを使用して、ブランキングを開始するたびにPHPを自動的に再起動しました。私のPHPエラーログは空白です。

しかし、WP-SuperCacheと呼ばれるWordpressプラグインを無効にすると、私のPHPは約10時間ごとにリセットされなくなりました。これまでのところ、私のPHPは3日間連続で実行されています。これについて何か提案はありますか?

8
Unknown

スーパーキャッシュは、ページのフルキャッシュバージョンを生成するだけでなく、他の内部キャッシュも実行します。高負荷の状況では、何らかのタイミングの問題が発生する可能性があります。キャッシュフォルダをチェックして、空白のファイルが含まれていないことを確認します。もしそうなら、おそらくファイルロックの問題があります。このような問題を解決するのは難しいかもしれません。コード自体に問題がある可能性があるため、バグチケットを開く必要があります。

2
Eric

fcgiサービスを再起動するのではなく、実際に停止して再起動してみましたか。 fcgiの再起動中に同様の奇妙なことが起こりました

1
seanl

これは一般的な問題です。あなたができる最善のことは、毎晩spawn-fcgiを再起動し、エラーログを監視することです。 PHPを再起動する小さなpython logwatchプログラムはここにあります。

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

1
reconbot

リクエストの応答ステータスが再度発生する場合はチェックし(例:curl -i)、ステータスが200でない場合は、エラーページ(具体的には表示されているエラー番号のページ)をチェックして、そうでないことを確認します。無限ループを引き起こす可能性のある方法でリダイレクトするように設定します。

応答ステータスが200の場合は、HTTPヘッダー以外のテキストが応答に含まれていないかどうかを確認してください。

1
Xolani

答えではありませんが、提案-spawn-fcgiを php-fpm に置き換えてください。よりカスタマイズ可能です。

PS。多分あなたはnginx.confに特別な50xエラーページリダイレクトを持っています

UPD:今日、nginx + phpが空白のページを提供し始めたときに、同様の問題が発生しました。私の調査によると、phpが例外をスローした場合は、空白のページが送信されます。エラーの代わりに空白を提供するのは、ある種のphp.iniディレクティブである可能性があります。ログなどを調べる必要があります... wip。

UPD2:php.iniを見ると、phpエラーを確認するために変更する必要のある2つのパラメーターがあります。

error_reporting = E_ALL & ~E_NOTICE
display_errors = On
1
SaveTheRbtz

「自発的に一晩で発生した」句は興味深いように聞こえます...ホストがすべてのトラフィックにステータスヘッダーを追加し始めた可能性はありますか?もしそうなら、あなたはこのバグを見ているかもしれません:

Joomla!php、FastCGI、空白ページ、重複ヘッダー 'ステータス'

0