Centos 5システムでLighttpdとfastcgiを有効にしています。アクセスは記録されますが、エラーは記録されません。内部サーバーエラー500があり、ログに情報がありません。また、存在しないファイルも開こうとすると、エラーログに情報がありません。適切に有効にする方法は?
以下は私が有効にしたモジュールのリストです:
server.modules = (
"mod_rewrite",
"mod_redirect",
"mod_alias",
# "mod_access",
# "mod_cml",
# "mod_trigger_b4_dl",
# "mod_auth",
"mod_status",
"mod_setenv",
"mod_fastcgi",
# "mod_webdav",
# "mod_proxy_core",
# "mod_proxy_backend_fastcgi",
# "mod_proxy_backend_scgi",
# "mod_proxy_backend_ajp13",
# "mod_simple_vhost",
# "mod_evhost",
# "mod_userdir",
# "mod_cgi",
# "mod_compress",
# "mod_ssi",
# "mod_usertrack",
# "mod_expire",
# "mod_secdownload",
# "mod_rrdtool",
"mod_accesslog" )
デバッグの設定は次のとおりです。
## enable debugging
#debug.log-request-header = "enable"
#debug.log-response-header = "enable"
#debug.log-request-handling = "enable"
debug.log-file-not-found = "enable"
#debug.log-condition-handling = "enable"
エラーとアクセスログへのパスの設定:
## where to send error-messages to
server.errorlog = "/home/lxadmin/httpd/lighttpd/error.log"
#### accesslog module
accesslog.filename = "/home/lxadmin/httpd/lighttpd/ligh.log"
Fastcgiの設定:
fastcgi.debug = 1
fastcgi.server = ( ".php" => ((
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/tmp/php.socket",
"max-procs" => 12,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "2",
"PHP_FCGI_MAX_REQUESTS" => "500"
)
)))
そして、私が持っている設定ファイルに含まれています:
server.errorlog = "/home/httpd/mywebsite.com/stats/mywebsite.com-error_log"
ログファイルの内容:
/home/httpd/mywebsite.com/stats/
-rw-r--r-- 1 Apache apache 5173239 May 16 11:34 mywebsite.com-custom_log
-rwxrwxrwx 1 root root 0 Mar 27 2009 mywebsite.com-error_log
/home/lxadmin/httpd/lighttpd/
-rwxrwxrwx 1 Apache apache 2184 Apr 22 22:59 error.log
-rwxrwxrwx 1 Apache apache 6088621 May 16 11:26 ligh.log
エラーログchmod 777を使用して、それが問題かどうかを確認しようとしましたが、問題ではないようです。
だから私の質問は、エラーログを有効にするにはどうすればよいですか?
Apacheやnginxとは異なり、lighttpdのエラーメッセージには仮想ホストごとのログファイルを使用できません。 server.errorlog
変数はlighttpdでグローバルです。詳細は Feature Request#665 を参照してください。
Error_logは適切に構成されているようです。
Lighttpdプロセスをlsofして、error_logが開いているかどうかを確認しましたか?
lsof -p `pidof lighttpd`
一方、内部エラーを強制的に発生させながら、同じプロセスを追跡します。
strace -o strace.out -p `pidof lighttpd`
Strace.outを見てください。これは、error_logが書き込まれていない理由を発見するだけでなく、内部サーバーエラーの問題自体のデバッグにも役立ちます。
Fastcgiプロセスに同じ「レシピ」を適用します。私の推測では、これはlighttpdプロセスとfastcgiプロセスの間で失敗した接続に関連しています。
お役に立てれば。