lighttpd 1.4.20 は CGI の STDERR をエラーログに出してくれない。
のでちょっとはまった。なんなんだ。
コードを見るとなぜか /dev/null
にリダイレクトしちゃっている。
ログを追うと、
http://redmine.lighttpd.net/repositories/revision/lighttpd/2163
この変更によるものらしいが、正直何してるのかよくわからない。
とりあえず STDERR が闇に葬られるとか不便すぎるので
diff --git a/src/mod_cgi.c b/src/mod_cgi.c
index 6f27f8b..18f88c2 100644
--- a/src/mod_cgi.c
+++ b/src/mod_cgi.c
@@ -987,8 +987,6 @@ static int cgi_create_env(server *srv, connection *con, plugin_data *p, buffer *
*c = '/';
}
- openDevNull(STDERR_FILENO);
-
/* we don't need the client socket */
for (i = 3; i < 256; i++) {
if (i != srv->errorlog_fd) close(i);
などとしておいた。1.4.x 系では今のところ最新の 1.4.20 だけがこうなってる。
チケット作っとこうとしたらもうあった。
次のバージョンでは直ると良いね。