Bagaimana cara mengaktifkan error log in lighttpd dengan benar?

12

Saya memiliki sistem Centos 5 dengan Lighttpd dan fastcgi diaktifkan. Itu akses log tetapi tidak mencatat kesalahan. Saya memiliki Internal Server Error 500 dan tidak ada info dalam log dan ketika saya mencoba untuk membuka file yang tidak ada juga - tidak ada info dalam log kesalahan. Bagaimana cara mengaktifkannya dengan benar?

Di bawah ini adalah daftar modul yang saya aktifkan:

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

Berikut adalah pengaturan debugging:

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

Pengaturan jalur ke kesalahan dan akses log:

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

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

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

Dan dalam file konfigurasi termasuk saya punya:

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

Apa yang datang ke file 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

Saya memberi error log chmod 777 untuk mencoba memeriksa apakah itu masalahnya, tetapi ternyata tidak.

Jadi pertanyaan saya adalah: apa yang harus dilakukan untuk mengaktifkan log kesalahan?

Tomasz Smykowski
sumber

Jawaban:

8

Tidak seperti Apache dan nginx, Anda tidak dapat menggunakan file log host virtual untuk pesan kesalahan di lighttpd. server.errorlogvariabel bersifat global dalam lighttpd, lihat Permintaan Fitur # 665 untuk lebih jelasnya.

Emre Yazici
sumber
7

Error_log Anda tampaknya terkonfigurasi dengan baik.

Sudahkah Anda mencoba proses lighttpd Anda untuk melihat apakah error_log telah dibuka?

lsof -p `pidof lighttpd`

Di sisi lain, cobalah untuk strace proses yang sama sambil memaksa kesalahan internal terjadi:

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

Lihatlah strace.out. Ini mungkin berguna tidak hanya menemukan mengapa error_log tidak ditulis tetapi juga debugging masalah kesalahan server internal itu sendiri.

Terapkan "resep" yang sama ke proses fastcgi. Dugaan saya adalah bahwa ini terkait dengan koneksi yang gagal antara proses lighttpd dan fastcgi.

Semoga ini membantu.

Marco Ramos
sumber
Terima kasih, saya akan mencoba lsof, dan untuk melakukan strace saya masih menunggu kesalahan terjadi.
Tomasz Smykowski
Saya sudah mencoba lsof pada salah satu dari banyak proses apache yang saya miliki di sistem saya dan tidak memiliki log kesalahan terbuka. Tetapi sekarang saya tidak memiliki situasi kesalahan ini lagi.
Tomasz Smykowski