Apache und Perl mögen mich nicht!
AndreasW
- webserver
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
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
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
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 -wweil 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 <<EOTblablabla
und so weiter
und so fortEOT
;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
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
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 Andreas,
Statt:
AddHandler cgi-scripts .pl .cgi
probier mal:
AddHandler cgi-script .pl .cgiSo 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