Michael Schröpl: Perl-CGI-Skripte nur mit "-w" möglich?

Beitrag lesen

Hi Achim,

ich habe mal eine Frage an die Apache-Spezialisten: mir ist aufgefallen, dass CGI-Skripte auf meinem Webserver (Apache/1.3.26 (Unix) Debian GNU/Linux) Perl-CGIs nur laufen, wenn in der Shebang-Zeile der "-w"-Schalter angegeben ist (#!/usr/bin/perl -w). Ohne diesen Schalter produzieren die Skripten nur einen "Internal Server Error".

nicht das Skript produziert diesen Fehler, sondern der Apache selbst - weil das Skript etwas ausgegeben hat, was den Anforderungen derjenigen Schnittstelle, über die es aktiviert wurde, nicht gerecht wurde.
Was genau das war, steht wie immer in Deinem error_log; zusätzlich kannst Du noch ein "ScriptLog" definieren, um sämtliche CGI-Ausgaben zu protokollieren (das kann während eines Entwicklungsprozesses helfen; "CGI::Carp" kennst Du natürlich auch?)

Rufst Du dann "perl -w" auf, dann gibt das Skript etwas _anderes_ auf, und das scheint dann zu passen.

Prinzipiell habe ich ja nichts gegen "-w", im Gegenteil. Aber bei einigen Skripten werden derart viele Warnungen ausgegeben, dass das Error-Log des betreffenden Hosts 20x grösser ist als das Access-Log *hmpf*. Kann mir jemand sagen, wie ich das in den Griff bekomme? Ich kann und möchte allerdings nicht das Error-Log abschalten, sondern einfach die Skripte ohne -w zum Laufen bekommen.

Äh, dann tu das doch einfach? Fehlermeldungen sind dazu da, die entsprechenden Fehler zu beschreiben - ein guter Ansatz, um sie dann auch zu beheben ...

Viele Grüße
      Michael

--
T'Pol: I apologize if I acted inappropriately.
V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
(sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.