Come abilitare correttamente il log degli errori in lighttpd?


12

Ho un sistema Centos 5 con Lighttpd e fastcgi abilitati. Registra l'accesso ma non registra gli errori. Ho un errore interno del server 500 e nessuna informazione nel registro e quando provo ad aprire anche un file inesistente - nessuna informazione nel registro degli errori. Come abilitarlo correttamente?

Di seguito è riportato un elenco di moduli che ho abilitato:

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

Ecco le impostazioni del debug:

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

Impostazione del percorso dell'errore e del registro di accesso:

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

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

Impostazioni di 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 nel file di configurazione incluso ho:

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

Cosa viene fornito ai file di 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

Ho fornito i log degli errori chmod 777 per provare a verificare se si tratta del problema, ma a quanto pare non lo è.

Quindi la mia domanda è: cosa fare per abilitare il registro degli errori?

Risposte:


8

A differenza di Apache e nginx, non è possibile utilizzare i file di registro dell'host virtuale per i messaggi di errore in lighttpd. server.errorlogLa variabile è globale in lighttpd, vedere Richiesta di funzionalità # 665 per maggiori dettagli.


7

Il tuo error_log sembra essere ben configurato.

Hai provato a isolare il tuo processo lighttpd per vedere se ha error_log aperto?

lsof -p `pidof lighttpd`

D'altra parte, prova a seguire lo stesso processo forzando il verificarsi di un errore interno:

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

Dai un'occhiata a strace.out. Questo potrebbe essere utile non solo per scoprire perché il file_errore non viene scritto, ma anche per il debug del problema di errore interno del server stesso.

Applicare la stessa "ricetta" ai processi fastcgi. La mia ipotesi è che ciò sia correlato a connessioni fallite tra i processi lighttpd e fastcgi.

Spero che sia di aiuto.


Grazie, proverò lsof, e per fare strace aspetto ancora che si verifichi l'errore.
Tomasz Smykowski,

Ho provato lsof su uno dei molti processi apache che ho sul mio sistema e non ha un registro degli errori aperto. Ma ora non ho ancora questa situazione di errore.
Tomasz Smykowski,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.