Achim Schrepfer: Perl-CGI-Skripte nur mit "-w" möglich?

Hallo Forumers,

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

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.

viele Grüße
  Achim Schrepfer

--
»Wenn die meisten sich schon armseliger Kleider und Möbel schämen, wieviel mehr sollten wir uns da erst armseliger Ideen und Weltanschauungen schämen.« - Albert Einstein
Selfcode: sh:) fo:| ch:| rl:° br:> n4:{ ie:% mo:} va:| de:< zu:| fl:( ss:) ls:& js:|
  1. 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.