Как правильно включить журнал ошибок в lighttpd?

12

У меня есть система Centos 5 с включенным Lighttpd и fastcgi. Это делает доступ к журналу, но не регистрирует ошибки. У меня Внутренняя ошибка сервера 500 и нет информации в журнале, и когда я пытаюсь открыть несуществующий файл, также нет информации в журнале ошибок. Как правильно включить?

Ниже приведен список модулей, которые я включил:

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

Вот настройки отладки:

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

Установка пути к ошибке и доступ к журналу:

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

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

Настройки 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"
                         )
                 )))

И во включенном конфигурационном файле у меня есть:

server.errorlog    =  "/home/httpd/mywebsite.com/stats/mywebsite.com-error_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

Я дал журналы ошибок chmod 777 для проверки, если это проблема, но, видимо, это не так.

Итак, мой вопрос: что делать, чтобы включить журнал ошибок?

Томаш Смыковский
источник

Ответы:

8

В отличие от Apache и nginx, вы не можете использовать файлы журналов для каждого виртуального хоста для сообщений об ошибках в lighttpd. server.errorlogпеременная является глобальной в lighttpd, см. запрос функции # 665 для более подробной информации.

Эмре Язычи
источник
7

Ваш error_log, похоже, хорошо настроен.

Вы пытались запустить процесс lighttpd, чтобы увидеть, есть ли в нем файл error_log?

lsof -p `pidof lighttpd`

С другой стороны, попробуйте выполнить тот же процесс, одновременно вызывая внутреннюю ошибку:

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

Посмотрите на strace.out. Это может быть полезно не только для выяснения того, почему error_log не записывается, но и для отладки самой проблемы с внутренними ошибками сервера.

Примените тот же «рецепт» к процессам fastcgi. Я предполагаю, что это связано с ошибками соединений между процессами lighttpd и fastcgi.

Надеюсь это поможет.

Марко Рамос
источник
Спасибо, я попробую lsof, и, чтобы сделать strace, я все еще жду, когда ошибка произойдет.
Томаш Смыковски
Я пробовал lsof на одном из многих процессов apache, которые у меня есть в моей системе, и у него нет открытого журнала ошибок. Но сейчас у меня все еще нет этой ошибки.
Томаш Смыковски