AndreasW: Apache und Perl mögen mich nicht!

Hallo,

kann mir jemand von Euch helfen?

ich habe ein kleines Perl Script:

#! perl
print "Content-type: text/html\n";
print "\n";
print "<html>";
print "<head>";
print "<title>Test</title>";
print "<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">";
print "</head>";
print "<body>";
print "<p>Testseite fuer meine pl-scripts</p>";
print "</body>";
print "</html>";

und bei meinem Apache ist fuer das cgi-Verzeichnis (c:\www\cgi-bin) folgendes konfiguriert:

<directory "c:/www/cgi-bin">
order allow,deny
allow from all
AddHandler cgi-scripts .pl .cgi
</directory>

Als Output, wenn ich das Perlscript aufrufe (mit http://localhost/cgi-bin/test.pl - c:/www ist mein Server-Heimverzeichnis), erhalte ich:

#! c:\perl\bin\perl print "HTTP/1.0 200 OK\n"; print "Content-type: text/html\n"; print "\n"; print ""; print ""; print ""; print ""; print ""; print ""; print "
Testseite fuer meine pl-scripts

"; print ""; print "";

Was muss ich aendern, um das zum laufen zu bringen - ich will natuerlich nicht die ganzen Print-Statements, sondern nur das reine HTML zu sehen bekommen.
Perl ist im Suchpfad, und wenn ich das Perlscript direkt aufrufe, bekomme ich als Output das, was ich erwarte.

Was habe ich uebersehen?

Vielen Dank im voraus!
Andreas

  1. Hallo,

    eines fällt mir schon mal ein, so oder so:
    erspar Dir doch die ganzen prints und schreib sowas:

    print qq~
    <html>
    <head>
    <title>Test</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>
    <p>Testseite fuer meine pl-scripts</p>
    </body>
    </html>
    ~;

    Das mit APache muß jemand anderes beantworten...
    Gruß
    Denis

    1. hi,
      ich glaub, daß Du den richtigen pfad zu perl.exe in der ersten zeile angeben mußt.
      also z.b.:
      #!c:\per\bin\perl.exe -w

      weil apache aus der unix-welt kommt, und dort wirds so gemacht.
      aber normalerweise gibts sowieso ein sample, an das Du Dich halten kannst.

      alternativ kannst Du auch mod-perl verwenden, aber unter windows ist das ganze nicht so wirklich stabil .

      btw.: es geht auch so
      print <<EOT

      blablabla
      und so weiter
      und so fort

      EOT
      ;

      sieh mal in die doku.

      grüße
      klaus

      1. hi,
        ich glaub, daß Du den richtigen pfad zu perl.exe in der ersten zeile angeben mußt.
        also z.b.:
        #!c:\per\bin\perl.exe -w

        weil apache aus der unix-welt kommt, und dort wirds so gemacht.
        aber normalerweise gibts sowieso ein sample, an das Du Dich halten kannst.

        alternativ kannst Du auch mod-perl verwenden, aber unter windows ist das ganze nicht so wirklich stabil .

        btw.: es geht auch so
        print <<EOT

        blablabla
        und so weiter
        und so fort

        EOT
        ;

        sieh mal in die doku.

        grüße
        klaus

        Hallo Klaus,

        danke fuer Deine Antwort - das mit dem Pfad hatte ich ausprobiert, aber vergessen, es in meinem Posting zu erwaehnen.
        Das eigentliche Problem war ein "s" zuviel beim AddHandler Eintrag:
        cgi-scripts statt korrekt cgi-script.

        Das Perlscript war ja nur ein Testteil, das ich aus einer vorhandenen Datei per Suche und Ersetzen umgewandelt hatte.
        Trotzdem Danke fuer den EOT-Trick, den kannte ich noch nicht - ich bin noch in der Perl-Try-and-Err-Phase.

        Andreas

    2. Hallo,

      eines fällt mir schon mal ein, so oder so:
      erspar Dir doch die ganzen prints und schreib sowas:

      print qq~
      <html>
      <head>
      <title>Test</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      </head>
      <body>

      Testseite fuer meine pl-scripts</p>
      </body>
      </html>
      ~;

      Das mit APache muß jemand anderes beantworten...
      Gruß
      Denis

      Hallo Denis,

      das Perlscript ist ja nur ein Dummy zum Testen.
      Ich habe einfach eine Testseite genommen und per Suche und Ersetze alle Zeilen in print-Statements umgewandelt.
      Trotzdem danke fuer den Tip - ich kenn mich noch nicht super mit Perl aus und bin immer dankbar, wenn ich was lernen kann.

      Andreas

  2. Hallo Andreas,

    Statt:

    AddHandler cgi-scripts .pl .cgi

    probier mal:
      AddHandler cgi-script .pl .cgi

    So ist es bei uns eingestellt und lauft!

    Gruß Olfi

    1. Hallo Andreas,

      Statt:

      AddHandler cgi-scripts .pl .cgi

      probier mal:
        AddHandler cgi-script .pl .cgi

      So ist es bei uns eingestellt und lauft!

      Gruß Olfi

      Hallo Olfi,

      im ersten Moment dachte ich ja, Du nimmst mich auf den Arm, aber dann habe ich doch noch das fehlende "s" entdeckt.
      Das war es! Jetzt kriege ich tatsaechlich nur den gewuenschten Output,
      so dass ich mich jetzt um die eigentliche Aufgabe kuemmern kann: perl-scripts schreiben.
      Tausend Dank!!!

      Andreas