Mein Variomedia

Hier können Sie sich im Kundenmenü einloggen.




Passwort vergessen?

Weitere Logins

Sie befinden sich hier: variomedia.de > Support > Häufige Fragen (FAQ) > Webanwendungen und Datenbanken > Perl

Fragen und Antworten

Warum funktioniert mein CGI-Script nicht?

Bei CGI-Scripten (z.B. Perl, Python) müssen einige Besonderheiten bedacht werden, die zu unerwarteten Fehlern führen können. In diesem Artikel werden die häufigsten Probleme mit CGI-Scripten und mögliche Lösungen beschrieben. Bitte beachten Sie, dass die Hinweise in diesem Artikel nicht für PHP-Scripte gelten.

Falsche Dateirechte

Für CGI-Scripte muss das Dateirecht ausführbar gesetzt werden (Oktalnotation 755), bei nicht ausführbaren Scripten erhalten Sie die folgende Fehlermeldung:

Das Skript muß ausführbar sein.

Sie können die Dateirechte über ein FTP-Programm oder per SSH (z.B. chmod 755 index.pl) ändern.

Schreibrechte dürfen aus Sicherheitsgründen ausschließlich für den Besitzer der Datei gesetzt sein, Sie erhalten sonst folgende Fehlermeldung:

Das Skript darf nicht für jeden ausführbar sein (world-writeable).

Shebang-Zeile

In der ersten Zeile eines CGI-Scripts muss der gewünschte Interpreter angegeben werden, hierzu dient die Zeichenkombination #! gefolgt vom gewünschten Interpreter-Programm (Shebang-Zeile), z.B. #!/usr/bin/perl für Perl oder #!/usr/bin/python für Python. Falls diese Zeile fehlt, oder ein ungültiger Pfad angegeben wurde, erhalten Sie folgende Fehlermeldung:
Fehler beim Verarbeiten des Skript-Headers / Error parsing script headers: Das Skript erzeugte keine Ausgabe. / Script yielded no output.

Fehlender Content-Type-Header

Die erste Zeile der Ausgabe eines CGI-Scripts muss ein Content-Type-Header gefolgt von einer Leerzeile sein (z.B. print 'Content-type: text/html\n\n';). Wenn dieser Header fehlt, erhalten Sie folgende Fehlermeldung:
Fehler beim Verarbeiten des Skript-Headers / Error parsing script headers:

DOS-Zeilenenden

Ein weiteres häufiges Problem sind DOS-Zeilenenden. Für Zeilenenden wird unter DOS bzw. Windows eine andere Sonderzeichenkombination genutzt als unter Unix, dies kann insbesondere bei ausführbaren Unix-Scripten zu unerwarteten Problemen führen. In diesem Fall erhalten Sie folgende Fehlermeldung:

setuid() failed: No such file or directory

Sie können das Format der Zeilenenden per SSH über den Befehl file prüfen (z.B. file index.pl), bei DOS-Zeilenenden wird "CRLF line terminators" angezeigt. In diesem Fall können Sie die Datei mittels dos2unix ins Unix-Format konvertieren (z.B. dos2unix index.pl).


CGI
chmod
Perl