web-dev-qa-db-ja.com

fastcgiのアクセスログはありますか?

Nginxでグローバルlocationを設定しようとしています。 PHP fastcgiを必要とするスクリプトを除いて、現在は完全に機能しています。404を実行しています。

アクセスしている正確なパスを確認する方法はありますか?これを少しデバッグして、何が間違っているのかを理解することができますか?

4
Rob

FastCGIはプログラムではなくプロトコルであるため、FastCGIのアクセスログはありません。 PHP fastcgiハンドラーをデバッグするために、私は通常straceに頼りました-通常、アクセスしようとしているファイルが表示され、その方法を理解するのは難しくありませんNginxのリクエスト処理デバッグロギングも多くの場合有益です。

これにstraceを使用するのは非常に簡単です。PHP FCGIワーカーをstraceし、-e trace=read,writeを使用した読み取り/書き込み呼び出しに制限します。-s 4096を使用して文字列の印刷サイズを増やすこともお勧めです。最初の数バイトだけではなく、FCGIパケット全体を取得します。

6
womble

もう1つの方法は、error_logディレクティブでデバッグモードを有効にすることです。詳細は http://wiki.nginx.org/CoreModule#error_log を参照してください

error_log error.log debug;

nginx内で何が起こるかについてのより多くの情報を生成しますが、fastcgiは生成しません。

http://wiki.nginx.org/Debugging に関する詳細情報もあります。

2
MaxDudu