CGI geht nicht

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.

Wo kann der Fehler liegen?

Vielen Dank!

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 !!!

CUL8R (M)ike.

Meine Perl-Scripts werden einfach nur als Textdatei angezeigt,
statt ausgeführt.

dann ist der server falsch konfiguriert, er schickt die datei nicht zum verknuepften interpreter. welche dateiendung nutzt du?

Dabei habe ich eigentlich alles beachtet:

-Das Script gibt den richtigen Pfad zu Interpreter an.

wenn das falsch waere wuerde ein 500 (internal sever error) ausgegeben

-Die Datei wurde mit chmod auf „755“ gesetzt.
-Das Script gibt einen richtigen Anfang (Document-type…)
aus.

in dem falle wuerden die dateien im browser zum download/oeffnen angeboten und nicht angezeigt

* 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“);

:wink:

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!

Ich hoffe es hat geholfen

CU (M)ike