Comment activer correctement le journal des erreurs dans lighttpd?

12

J'ai un système Centos 5 avec Lighttpd et fastcgi activés. Il enregistre l'accès mais ne consigne pas les erreurs. J'ai une erreur de serveur interne 500 et aucune information dans le journal et lorsque j'essaie d'ouvrir un fichier non existant également - aucune information dans le journal des erreurs. Comment l'activer correctement?

Voici la liste des modules que j'ai activés:

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

Voici la configuration du débogage:

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

Définition du chemin d'accès au journal des erreurs et des accès:

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

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

Paramètres 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"
                         )
                 )))

Et dans le fichier de configuration inclus, j'ai:

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

Contenu des fichiers journaux:

/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

J'ai donné les journaux d'erreurs chmod 777 pour essayer de vérifier si c'est le problème, mais apparemment ce n'est pas le cas.

Ma question est donc la suivante: que faire pour activer le journal des erreurs?

Tomasz Smykowski
la source

Réponses:

8

Contrairement à Apache et nginx, vous ne pouvez pas utiliser de fichiers journaux par hôte virtuel pour les messages d'erreur dans lighttpd. server.errorlogvariable est globale dans lighttpd, voir la demande de fonctionnalité # 665 pour plus de détails.

Emre Yazici
la source
7

Votre error_log semble être bien configuré.

Avez-vous essayé de lsof votre processus lighttpd pour voir s'il a le error_log ouvert?

lsof -p `pidof lighttpd`

D'un autre côté, essayez de suivre le même processus tout en forçant une erreur interne à se produire:

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

Jetez un oeil à strace.out. Cela peut être utile non seulement pour découvrir pourquoi le fichier error_log n'est pas en cours d'écriture, mais aussi pour déboguer le problème d'erreur du serveur interne lui-même.

Appliquez la même "recette" aux processus fastcgi. Je suppose que cela est lié à l'échec des connexions entre les processus lighttpd et fastcgi.

J'espère que cela t'aides.

Marco Ramos
la source
Merci, je vais essayer lsof, et pour faire du strace j'attends toujours que l'erreur se produise.
Tomasz Smykowski
J'ai essayé lsof sur l'un des nombreux processus apache que j'ai sur mon système et il n'a pas de journal d'erreurs ouvert. Mais maintenant, je n'ai toujours pas cette situation d'erreur.
Tomasz Smykowski