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)(ビルド: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日間実行されています。誰かこれについて何か提案はありますか?

回答:


2

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


1

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


1
問題は再起動によるものではありません。Redditと呼ばれるリンクダンプからたくさんの訪問者を集めたとき、それはちょうど一夜に自然に起こりました。
不明

1

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

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


私はそうすべきだったと思いますが、人々がページを表示できるように、すでにPHPを再起動しました。サーバーログにエラーはありませんでした。
不明


1

答えではありませんが、提案-spawn-fcgiをphp- fpmに置き換えます。

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

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

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

error_reporting = E_ALL & ~E_NOTICE
display_errors = On

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.