mod_fcgid: ErrorLog per VHost für Perl

Apache, Lighttpd, nginx, Cherokee
martin.g
Posts: 10
Joined: 2011-02-01 11:19

mod_fcgid: ErrorLog per VHost für Perl

Post by martin.g » 2011-09-28 10:42

Hallo,

ich habe mod_fcgid für PHP und Perl eingerichtet. In meinem VHost steht eine ErrorLog Direktive.
PHP Fehler gehen auch dorthin. Aber ich schaffe es nicht, dass die Perl Fehler in das VHost Log geschrieben werden. Kann ich das irgendwo einstellen (ohne Log4Perl oder solche Scherze)?

Mein Testscript test.pl

Code: Select all

#!/usr/bin/perl
print STDERR "PRINT\n";
die("DIE");

macht folgende Ausgabe in /var/log/apache2/error.log

Code: Select all

PRINT
DIE at test.pl line 3

und nur diese Ausgabe in /var/log/apache2/vhost/error.log

Code: Select all

[Wed Sep 28 08:36:53 2011] [warn] [client 192.168.0.149] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
[Wed Sep 28 08:36:53 2011] [error] [client 192.168.0.149] Premature end of script headers: test.pl


Kann mir jemand sagen, wie ich fcgi beibringe, STDERR ebenfalls an das VHost ErrorLog zu binden? Ich würde die Änderung gerne global machen, ohne in jedem Skript STDERR von Hand neu zu setzen oder Signale abfangen zu müssen.

Vielen Dank
Gruß Martin

martin.g
Posts: 10
Joined: 2011-02-01 11:19

Re: mod_fcgid: ErrorLog per VHost für Perl

Post by martin.g » 2011-09-28 14:39

Hmm, das scheint das generelle Verhalten von httpd zu sein, dass STDERR für CGI auf das Hauptlog geht. In einem Nebensatz steht das auch in der Apache Logging Dokumentation. Es ist auch unabhängig von mod_suexec, mod_cgid und mod_fcgid.
Ich war mod_perl gewohnt und da hatte ich das irgendwo umgebogen.
Naja, nicht schön, aber scheinbar nicht zu ändern. Den Sinn verstehe ich nicht. Wenn doch jemand eine kluge Idee hat, dann immer her damit.

martin.g
Posts: 10
Joined: 2011-02-01 11:19

Re: mod_fcgid: ErrorLog per VHost für Perl

Post by martin.g » 2011-09-28 15:28

Laut hier:
https://issues.apache.org/bugzilla/show ... i?id=14090
ist es wohl so, dass bei mod_cgi STDERR ins VHost Log geht und bei mod_cgid STDERR ins Main Log.
Dafür, dass der Fehler so alt und lange bekannt ist, finde ich das schon etwas entäuschend...