Perl unter Apache
harry
- perl
Hallo,
ich habe soeben die Perltriad installiert, also Apache mit Perl, PHP und Mysql. Meine Frage: Was muss ich anpassen, damit meine alten Perlprogramme bei dem Apache laufen? Bis jetzt habe ich immer mit Omnihttp gearbeitet. Dieselben Scripte funktionieren aber bei Apache nicht. Ich habe gelesen, man muss die Zeile "#!/usr/bin/perl" anpassen, das möchte ich aber nicht, da sonst mein Provider Probleme machen könnte.
Gruss
harry
#!/usr/bin/perl
print "hallo welt";
funktioniert z.B. nicht.
Hi,
Was muss ich anpassen, damit meine alten Perlprogramme bei dem Apache laufen?
Perl hat mit der verwendeten Serversoftware nichts zu tun. Daran siehst Du einen Mangel[1] in OmniHTTPd: dort wurde in der Konfiguration der Pfad zum Perl-Interpreter eingestellt.
Ich habe gelesen, man muss die Zeile "#!/usr/bin/perl" anpassen,
Diese Zeile (Shebang genannt) sagt, wo der Perl-Interpreter zu finden ist. Sorge dafür, dass bei Dir die selben Bedingungen herrschen wie bei Deinem Provider: installiere Perl nach C:\usr, dann existiert ein C:\usr\bin\perl.exe.
Übrigens sollte die Shebang "#!/usr/bin/perl -w" lauten, und direkt danach ein "use strict;" folgen. Wenn das bei Dir noch nicht der Fall war, ändere es - und korrigiere die Fehler, die Dir anschließend genannt werden.
das möchte ich aber nicht, da sonst mein Provider Probleme machen könnte.
Dein _Provider_ macht Probleme? ;-)
#!/usr/bin/perl
print "hallo welt";
Das ist kein CGI-Script. Selbstverständlich wird es einen Internal Server Error erzeugen, wenn Du es über HTTP ansprichst.
#!/usr/bin/perl -w
use strict;
use CGI ':standard';
print header, 'Hallo Welt';
Siehe
perldoc perlrun (-w)
perldoc strict
perldoc CGI
Cheatah
[1] Meiner Meinung nach. Andere mögen anderer Ansicht sein, und vielleicht auch darauf hinweisen, dass man Apache so konfigurieren kann, dass es den Pfad zum Perl-Interpreter aus der Registry holt. Davon rate ich aber ab, weil wegen unflexibel.
hallo Cheatah
[1] Meiner Meinung nach. Andere mögen anderer Ansicht sein, und vielleicht auch darauf hinweisen, dass man Apache so konfigurieren kann, dass es den Pfad zum Perl-Interpreter aus der Registry holt. Davon rate ich aber ab, weil wegen unflexibel.
Ich bin durchaus deiner Ansicht, obwohl
"ScriptInterpreterSource registry"
ganz verführerisch ist. Aber man braucht bloß ein perl-Script mit der Endung *.cgi" versehen, schon klappts nicht mehr, und der obligatorishce shebang muß es wieder geraderichten.
Christoph S.
Hallo Christoph,
Ich bin durchaus deiner Ansicht, obwohl
"ScriptInterpreterSource registry"
ganz verführerisch ist. Aber man braucht bloß ein perl-Script mit
der Endung *.cgi" versehen, schon klappts nicht mehr, und der
obligatorishce shebang muß es wieder geraderichten.
Oder einfach bei einem Doppelklick auf das Skript selbiges in seinen
Editor geladen bekommen wollen, statt es auszuführen (was mangels ge-
eignetem CGI-environment nur in exotischen Fällen sinnvoll erscheint).
Auf meinem Entwicklungs-Rechner möchte ich diese Registry-Verknüpfung
jedenfalls nicht haben.
Viele Grüße
Michael