Como habilitar o log de erros no lighttpd corretamente?

12

Eu tenho um sistema Centos 5 com Lighttpd e fastcgi ativado. Ele registra o acesso, mas não registra erros. Eu tenho o Erro interno do servidor 500 e nenhuma informação no log e quando tento abrir o arquivo não existente também - nenhuma informação no log de erros. Como habilitá-lo corretamente?

Abaixo está uma lista de módulos que eu habilitei:

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" )

Aqui está a configuração da depuração:

## 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"

Configuração do caminho para o erro e log de acesso:

## where to send error-messages to
server.errorlog             = "/home/lxadmin/httpd/lighttpd/error.log"

#### accesslog module
accesslog.filename          = "/home/lxadmin/httpd/lighttpd/ligh.log"

Configurações de 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"
                         )
                 )))

E no arquivo de configuração incluído eu tenho:

server.errorlog    =  "/home/httpd/mywebsite.com/stats/mywebsite.com-error_log"

O que vem aos arquivos de 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

Dei logs de erro chmod 777 para tentar verificar se é o problema, mas aparentemente não é.

Então, minha pergunta é: o que fazer para ter o log de erros ativado?

Tomasz Smykowski
fonte

Respostas:

8

Diferentemente do Apache e do nginx, você não pode usar arquivos de log por host virtual para mensagens de erro no lighttpd. server.errorlogé variável no lighttpd, consulte Solicitação de recurso # 665 para obter mais detalhes.

Emre Yazici
fonte
7

Seu error_log parece estar bem configurado.

Você tentou lsof seu processo lighttpd para ver se o error_log foi aberto?

lsof -p `pidof lighttpd`

Por outro lado, tente rastrear o mesmo processo ao forçar a ocorrência de um erro interno:

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

Dê uma olhada em strace.out. Isso pode ser útil não apenas para descobrir por que o error_log não está sendo gravado, mas também para depurar o problema de erro interno do servidor.

Aplique a mesma "receita" nos processos fastcgi. Meu palpite é que isso está relacionado a falhas de conexão entre os processos lighttpd e fastcgi.

Espero que isto ajude.

Marco Ramos
fonte
Obrigado, vou tentar lsof, e para fazer strace ainda espero o erro ocorrer.
Tomasz Smykowski
Eu tentei o lsof em um dos muitos processos apache que tenho no meu sistema e ele não possui um log de erro aberto. Mas agora ainda não tenho essa situação de erro.
Tomasz Smykowski