Diferentemente do Apache e do nginx, você não pode usar arquivos de log de host virtual para mensagens de erro no lighttpd. A variável server.errorlog
é global no lighttpd, consulte Solicitação de recurso # 665 para obter mais detalhes.
Eu tenho um sistema Centos 5 com Lighttpd e fastcgi ativado. Ele registra o acesso, mas não registra erros. Eu tenho Internal Server Error 500 e nenhuma informação no log e quando tento abrir o arquivo não-existente também - sem informações no log de erro. Como habilitar corretamente?
Abaixo está a 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ão as configurações de 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 registro 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 do 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 para os 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
Eu dei o log de erro chmod 777 para tentar checar se é o problema, mas aparentemente não é.
Então, minha pergunta é: o que fazer para ter o log de erros ativado?
Diferentemente do Apache e do nginx, você não pode usar arquivos de log de host virtual para mensagens de erro no lighttpd. A variável server.errorlog
é global no lighttpd, consulte Solicitação de recurso # 665 para obter mais detalhes.
Seu error_log parece estar bem configurado.
Você já tentou lsof seu processo lighttpd para ver se ele tem o error_log aberto?
lsof -p 'pidof lighttpd'
Por outro lado, tente aplicar o mesmo processo ao mesmo tempo em que forçar um erro interno:
strace -o strace.out -p 'pidof lighttpd'
Dê uma olhada no strace.out. Isso pode ser útil não apenas descobrindo por que o error_log não está sendo gravado, mas também depurando o próprio problema de erro do servidor interno.
Aplique a mesma "receita" aos processos fastcgi. Meu palpite é que isso está relacionado com conexões que falham entre os processos lighttpd e fastcgi.
Espero que isso ajude.