Fenrir: Offline CGIs testen

Ich habe mir zu Testzwecken einen Offline-Server unter Win98 eingerichtet. Dazu benutze ich Apache 1.3.12 und ActivePerl 5.6.0. PHP, etc. ist alles eingerichtet, läuft wunderbar. Auch simple CGI-Scripts laufen. Sobald ich jedoch Perl-Scripts aus dem Netz runterziehe und testen will, streikt der Apache. Und zwar grundsätzlich bei dem Aufruf "&header" in den Scripts.

Die Fehlermeldung im Apache-Log lautet dann:
Premature end of script headers: "Scriptname"
Undefined subroutine &main::header called at "Scriptname" line "Zeilennummer".

Apache-FAQ und die meisten Anlaufstellen im Netz hab ich schon durch, kann mir jemand helfen?

Danke.

  1. Hi,

    Undefined subroutine &main::header called at "Scriptname" line "Zeilennummer".

    sieht für mich so aus, als ob da einfach eine Funktion nicht vorhanden ist, die aufgerufen werden soll.
    Ob das an irgendwelchen nicht mehr kompatiblen Modulen liegt, oder ob Du nur einen Teil des Skripts heruntergeladen hast, kann ich nicht sagen.
    Frag doch mal den Autor des Skripts, unter welchen Voraussetzungen es funktionieren soll ...

    mfG - Michael

  2. Hallo Fenrir,

    Ich habe mir zu Testzwecken einen Offline-Server unter Win98 eingerichtet. Dazu benutze ich Apache 1.3.12 und ActivePerl 5.6.0. PHP, etc. ist alles eingerichtet, läuft wunderbar. Auch simple CGI-Scripts laufen. Sobald ich jedoch Perl-Scripts aus dem Netz runterziehe und testen will, streikt der Apache. Und zwar grundsätzlich bei dem Aufruf "&header" in den Scripts.

    Die Fehlermeldung im Apache-Log lautet dann:
    Premature end of script headers: "Scriptname"

    Diese Fehlermeldung wird ueblicherweise ausgegeben, wenn kein gueltiger HTTP-Header vorhanden ist

    Undefined subroutine &main::header called at "Scriptname"
    line "Zeilennummer".

    Das sieht mir ganz danach aus, als ob bei Dir das CGI-Modul nicht richtig implementiert ist (ungewoehnlich, da es zur Standartbibliothek gehoert), dieses bringt naemlich die Fkt. 'header' mit. (und diese gibt den HTTP-Header aus)

    Ist bei dir CGI.pm unter PathToPerl/lib/ vorhanden ?

    Wenn ja, schau mal in den Scripts nach, ob folgende Zeile vorhanden ist:

    use CGI qw/:standard/;
    wenn nicht installiere perl noch mal neu.

    oder teste mal dieses Skript:

    #!perl -w
    use strict;

    use CGI qw/:standard/;
    print header,h1('Hey, es funktioniert !');

    Du kannst auch von der Konsole testen, Du musst nur die Eingabeaufforderung (name=value) mit CTRL-C abbrechen.

    Danke.

    Gruss
       Kai