¿Cómo habilitar el registro de errores en lighttpd correctamente?

12

Tengo un sistema Centos 5 con Lighttpd y fastcgi habilitado. Registra el acceso pero no registra errores. Tengo un error interno del servidor 500 y no tengo información en el registro y cuando intento abrir un archivo que no existe también, no hay información en el registro de errores. ¿Cómo habilitarlo correctamente?

A continuación se muestra una lista de módulos que he habilitado:

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

Aquí hay una configuración de depuración:

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

Configuración de ruta al error y registro de acceso:

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

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

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

Y en el archivo de configuración incluido tengo:

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

Lo que viene a los archivos de registro:

/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

Le di un error a logs chmod 777 para intentar comprobar si es el problema, pero aparentemente no lo es.

Entonces mi pregunta es: ¿qué hacer para habilitar el registro de errores?

Tomasz Smykowski
fuente

Respuestas:

8

A diferencia de Apache y nginx, no puede usar archivos de registro por host virtual para mensajes de error en lighttpd. server.errorlogvariable es global en lighttpd, consulte la Solicitud de función # 665 para obtener más detalles.

Emre Yazici
fuente
7

Su error_log parece estar bien configurado.

¿Has intentado lsof tu proceso lighttpd para ver si tiene el error_log abierto?

lsof -p `pidof lighttpd`

Por otro lado, intente organizar el mismo proceso mientras obliga a que ocurra un error interno:

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

Echa un vistazo a strace.out. Esto puede ser útil no solo para descubrir por qué el error_log no se está escribiendo, sino también para depurar el problema interno del error del servidor.

Aplique la misma "receta" a los procesos fastcgi. Supongo que esto está relacionado con las conexiones que fallan entre los procesos lighttpd y fastcgi.

Espero que esto ayude.

Marco Ramos
fuente
Gracias, lo intentaré con lsof, y para hacerlo, aún espero que ocurra el error.
Tomasz Smykowski
He intentado lsof en uno de los muchos procesos de apache que tengo en mi sistema y no tiene un registro de errores abierto. Pero ahora todavía no tengo esta situación de error.
Tomasz Smykowski