Meine Perl-Scripts werden einfach nur als Textdatei angezeigt, statt ausgeführt. Dabei habe ich eigentlich alles beachtet:
-Das Script gibt den richtigen Pfad zu Interpreter an.
-Die Datei wurde mit chmod auf „755“ gesetzt.
-Das Script gibt einen richtigen Anfang (Document-type…) aus.
Hi KKW,
Hm nur mal so zum abchecken:
* Script liegt im cgi-bin -Verzeichnis ??
* Verzeichnis ist in der Server-Conf-Datei ordnungsgemäß eingetragen ?
* CGI-Scripte sind in der Server-Conf-Datei freigegeben ?
Einiges davon wird bei der Installation des Servers gerne mal vergessen !!!
* Script liegt im cgi-bin -Verzeichnis ??
* Verzeichnis ist in der Server-Conf-Datei ordnungsgemäß
eingetragen ?
* CGI-Scripte sind in der Server-Conf-Datei freigegeben ?
Auf meinem eigenem Server läuft alles wie gewünscht, nur nach dem Upload zu Portland (http://lacrima.port5.com/) tritt der Fehler auf. In der Anleitung von Portland steht, dass man die Scripts in einem beliebigen Verzeichnis speichern kann.
Hi KKW,
ich nehme mal an, Du bist neu im „Gewerbe“?
als Perl-Script läuft Dein Stück vielleicht schon, aber nicht als CGI!!
Hier die korrigierte (lauffähige) Version:
— cut —
#!/usr/local/bin/perl -wT
-wT ist zur besseren Fehlersuche immer anzuraten
wir wollen doch wohl ein cgi-Script ausführen, also:
use CGI qw(:standard); # laden des CGI Modules
oh Graus, so nicht!!!
#print „Document-type: text/html\n\n“;
sondern:
print &header;
nicht schlecht
#print ‚‘;
eleganter, weil gleich der TITLE-Tag mitgeliefert wird:
print &start_html(„Holla“);
if (1 == 2) { print ’ !!! Fehler !!! ‚; }
print ‚(Ausführung der Datei indir.pl)‘;
print ’
[zurück](javascript:history.back())‘;
auch das geht eleganter
#print ‚‘;
und zwar so:
print &end_html;
— cut —
Wichtig ist sowohl der use Eintrag, als auch der print &header (erzeugt den eigentlichen (unsichtbaren) HTTP-Header, als auch das HTML-Startgerüst.
perl -wT sollte man zum debuggen immer mit angeben!