lighttpd에서 오류 로그를 올바르게 활성화하는 방법은 무엇입니까?


12

Lighttpd 및 fastcgi가 활성화 된 Centos 5 시스템이 있습니다. 액세스는 기록하지만 오류는 기록하지 않습니다. 내부 서버 오류 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 오류 로그를 제공했지만 실제로는 그렇지 않습니다.

그래서 내 질문은 : 오류 로그를 활성화하려면 어떻게해야합니까?

답변:


8

Apache 및 nginx와 달리 lighttpd의 오류 메시지에 가상 호스트 별 로그 파일을 사용할 수 없습니다. server.errorlog변수는 lighttpd에서 전역 적입니다 . 자세한 내용 은 기능 요청 # 665 를 참조하십시오.


7

error_log가 올바르게 구성된 것 같습니다.

error_log가 열려 있는지 확인하기 위해 lighttpd 프로세스를 시도 했습니까?

lsof -p `pidof lighttpd`

반면에 내부 오류가 발생하는 동안 동일한 프로세스를 추적하십시오.

strace -o strace.out -p `pidof lighttpd` 

strace.out을 살펴보십시오. 이는 error_log가 작성되지 않는 이유를 발견 할뿐만 아니라 내부 서버 오류 문제 자체를 디버깅하는 데 유용 할 수 있습니다.

fastcgi 프로세스에 동일한 "레시피"를 적용하십시오. 내 생각에 이것은 lighttpd와 fastcgi 프로세스 간의 연결 실패와 관련이 있습니다.

도움이 되었기를 바랍니다.


감사합니다, lsof를 시도하고 strace를 수행하기 위해 여전히 오류가 발생하기를 기다립니다.
Tomasz Smykowski

내 시스템에있는 많은 아파치 프로세스 중 하나에서 lsof를 시도했지만 열린 오류 로그가 없습니다. 그러나 지금은 여전히이 오류 상황이 없습니다.
Tomasz Smykowski
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.