PHP/MySQL駆動型WebサイトをApacheで実行している新しいDebianWebサーバーのバグまたは設定ミスを追跡しようとしています。私はここで厄介な詳細であなたを悩ませませんが、ただ尋ねたいです:
Apacheのエラーとアクセスログに何も表示されないのに、Webブラウザが "http 500 inernal server error"を受信するのを観察したことはありますか?現在、ここでは詳細については説明していませんが、これが発生する可能性はほとんどないと思うので、この奇妙な動作はすでに正しい方向につながるはずだと私は信じています。
この内部サーバーエラーが発生した場合、PHPスクリプトは問題なく正常に実行され続けますが、もちろん、ブラウザーは既に自分のことを考えているため、ブラウザーに配信したい結果は表示されません。彼が知っているように、内部サーバーエラーは世界の終わりです。
コメント/アイデアを歓迎します、
ローマ人。
解決済み:残念ながら、サーバーを制御するロードバランサーがあり、ロードバランサーは10秒ほど非アクティブになった後に接続を停止するように設定されていました。これで問題は解決しました。 500がApacheのerror.logに表示されなかった理由は、サーバー自体ではなく、接続を停止しているのは「外部」システム(ロードバランサー)であったためです。あなたのアイデアと助けてくれてありがとう!うまくいけば、誰か他の人がいつかこれが啓発的であることに気付くでしょう。
よろしく、ローマン。
その他の可能性:ソースファイルで@を探します。
警告
現在、「@」エラー制御演算子プレフィックスは、スクリプトの実行を終了させる重大なエラーのエラー報告を無効にすることさえあります。特に、これは、「@」を使用して特定の関数からのエラーを抑制し、それが使用できないか、入力ミスがあった場合、スクリプトがその場で終了し、理由がわからないことを意味します。
クレジットは Luc Mに 、私と多くのCodeIgniterユーザーを救った。
Apacheコード内でエラーが発生した場合にのみApacheエラーログに表示されますが、ステータスがPHPコード。PHPプロセスが完全にクラッシュする場合もありますが(これらは非常にまれですが)。
注意:プロキシ経由で接続し、プロキシがねじ込まれた場合にも発生する可能性があります。
同じ問題が発生しましたが、PHPのエラー報告設定が原因でした。私はE_ERRORを持っていましたが| E_WARNING | .htaccess PHPのE_PARSEがPHPをログに記録しませんでした。致命的なエラーがエラーログに記録されました。アクセスログに500のみ。ページの半分でも生成されました(そのエラーで関数を呼び出すまで)。
500は、ドキュメントのインラインで別のホストから送信されていますか?おそらく、CSSなどを別のボックスから入手したのでしょうか。 ErrorLog ディレクティブも追加してみてください。 FirebugまたはChrome webdevツールを使用して、500がどこから来ているかを調べます。これは、ページ内の広告または何かである可能性もあります。
また、CURLやLWPなどを試してリクエストを作成し、応答ヘッダーが何であるかを確認します。次に例を示します。
lwp-request -m HEAD -eSsd http://www.google.com/
HEAD http://www.google.com/ --> 200 OK
Cache-Control: private, max-age=0
Connection: close
Date: Tue, 19 Apr 2011 15:56:26 GMT
Server: gws
Content-Type: text/html; charset=ISO-8859-1
Expires: -1
Client-Date: Tue, 19 Apr 2011 15:56:26 GMT
Client-Peer: 74.125.91.99:80
Client-Response-Num: 1
Client-Transfer-Encoding: chunked
Set-Cookie:
REF=ID=b4ac3801dfbd939c:FF=0:TM=1303228586:LM=1303228586:S=nU_H2eC3zcLbTKfb;
expires=Thu,18-Apr-2013 15:56:26 GMT; path=/; domain=.google.com Set-Cookie:
NID=46=dsepCUy0iW9MDD7AkaP1-P4INDfRLTXz7l_TchQFzCGqtP4GU1EFbpn7K-sKq-ujNhpnR
Br8Cqgdyd3LyC3mxsRDOCCFoOn2OutZad7VWFs5erWVh0UNgEgkQJGqRe-; expires=Wed, 19-Oct-2011
15:56:26 GMT; path=/; domain=.google.com; HttpOnly
X-XSS-Protection: 1; mode=block
編集:GFタイプミスを発見しました。
Symfonyプロジェクトの場合、アプリ/ログを確認することを忘れないでください
あなたはその質問の詳細を見つけることができます:
https://stackoverflow.com/questions/18577003/how-to-debug-500-error-in-symfony-2
ところで、他のフレームワークやCMSも同様の動作をする可能性があります。