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.