Saarlaender wrote:Die Frage ist nun, wie ich ein Perl-Script aufrufe damit es auch funktioniert. In meinen Unterlagen gibts den folgenden Aufruf:
- Code: Select all
<!--#exec cgi="test.pl"-->
Um Himmels Willen - wo bekommt man solche "Unterlagen" her? Das ist ein Beispiel, wie man mit Hilfe von SSI (eine total veraltete CGI Schnittstelle) ein Perl Script startet. Dazu muss aber SSI aktiviert sein.
Saarlaender wrote:- Code: Select all
<?php print "Hello from PHP! ";
$perl = new Perl();
$perl->require("test.pl");
print "Bye! ";
?>
Das ist tatsächlich noch schlechter (beeindruckend, was im Internet für phantasievolle Müllscripts rumgereicht werden). Da wird (was ja auch paasiert) nur der Perl Quellcode ausgegeben.
Xampp liefert im cgi-bin Verzeichnis zwei kleine Perlscripts aus, eines heißt "perltest.cgi" und das andere "printenv.pl". Anscheinend soll damit demonstriert werden, dass man das Script sowohl *.cgi als auch *.pl nennen kann. Die Endung ist letztendlich zweitrangig, entscheidend ist die erste Zeile im Script, die sog. "Shebang" Zeile. Da wird dem Webserver angewiesen, welcher Interpreter für den nachfolgenden Code gestartet werden muss.
Diese Shebang Zeile ist bei den o.g. Scripts identisch, das ist auch klar, das sind beides Perl Scripts.
So, schau es Dir an - abkupfern und fertig! Aufgerufen werden diese Scripts mittels:
http://localhost/cgi-bin/perltest.cgihttp://localhost/cgi-bin/printenv.plIn httpd.conf gibt es irgendwo eine Anweisung "ScriptAlias ..." und die sorgt dafür, dass die Scripts in c:/xampp/cgi-bin gefunden werden, wenn man
http://localhost/cgi-bin/dateiname.pl im Browser eingibt. Wenn man das Script nicht in diesem cgi-bin Ordner speichern will (obwohl da auch nichts gegen spricht), sondern im htdocs Ordner bzw. einem Ordner darunter, dann muss in der <Directory ....> Konfiguration für c:/xampp/htdocs (was auch der DocumentRoot ist) bei den "Options" u.a. die Anweisung "ExecCGI" stehen (das ist glaube ich bei Xampp auch der Fall). Dann kann man auch ein test.pl beispielsweise direkt im Ordner c:/xampp/htdocs speichern und mit
http://localhost/test.pl starten (ohne cgi-bin darin).
Letzteres kannst Du ja mal herausfinden - denn: "nur üben übt"! Und nicht vergessen: die allererste Zeile aus den anderen Scripts MUSS auch in deinem script stehen. Und danach kommen normale Perl Script Anweisung. Nur um es nochmal klar zu machen - so sieht diese Shebang Zeile aus:
- Code: Select all
#!"C:\xampp\perl\bin\perl.exe"
Die Gänsefüsschen sind hier eigenlich überflüssig - die braucht man, wenn irgendwo im Pfad eine Leerzeichen wäre, aber das ist hier nicht der Fall, es täte also auch so:
- Code: Select all
#!C:\xampp\perl\bin\perl.exe
Auf diese Weise kann man auch einen anderen Perl Interpreter angeben, falls Du einen besseren oder anderen irgendwo installiert hättest - einfach dort den vollen Pfad zum Interrpeter angeben.