|
|
|
Frequently asked Questions
|
Selten funktioniert ein Perl-Skript sofort so, wie man es sich vorgestellt hat. Meistens sind es immer wieder die gleichen kleinen Gemeinheiten, die uns Webmastern das Leben schwer machen. Bevor Sie eine Frage im SupportForum posten oder entnervt aufgeben, sollten Sie diese Liste Punkt für Punkt durchgehen, um die Standardfehler schon einmal auszuschließen.
- Beim Aufruf des Skriptes gibt der Server die Fehlermeldung "Permission denied" aus
Die Dateirechte sind falsch eingestellt (nur bei Unix/Linux-Server). Ausführbare Dateien (also solche mit der Endung .pl oder .cgi) müssen für alle les- (read) und ausführbar sein (execute), dürfen aber nur vom Besitzer beschrieben werden (write). Sie können die Dateirechte mit Ihrem FTP-Programm ändern (set properties) oder per Telnet "chmod 755 dateiname.pl" verwenden. Im Verzeichnis finden Sie dann diese Darstellung: "-rwxr-xr-x". Übrigens gilt auch für Unterverzeichnisse von cgi-bin, in denen ausführbare Skripte abgelegt werden, dass sie auf 755 gesetzt werden müssen. Setzen Sie ausführbare Dateien niemals auf 777 (alle Rechte für alle) - das wäre ein echtes Sicherheitsrisiko! Glücklicherweise geben korrekt eingestellte Server dann ebenfalls eine Fehlermeldung aus.
|
|
|
|
Der Überblick über die aktuellsten Nachrichten: einfach auf JournalisMus klicken! |
Kennen Sie noch den C 64 oder den Amiga? Wir schreiben ein Buch über Commodore und suchen Zeitzeugen, Dokumente und Fotos. Machen Sie mit! |
Geld mit der Homepage verdienen? Unsere Empfehlung heißt TeleWord, das Micropayment-System für selbstgeschriebene Programme und Skripten, Bilder, Fotos, Musik oder was Sie wollen! Lassen Sie Ihre Kunden mit Telefon, Handy oder SMS bezahlen. Mehr |
|
|
- Beim Aufruf des Skriptes gibt es immer einen "Internal
Server Error"
Der Server zeigt damit an, dass er das Skript nicht ausführen
kann. Dafür kann es verschiedene Gründe geben:
- Auch hieran können die Dateirechte schuld sein -
siehe oben: "Permission denied".
- Der Pfad zum Perl-Interpreter in der ersten Zeile
des Skriptes stimmt nicht (Shebang). Bei Unix/Linux-Servern
könnte es zum Beispiel "#!/usr/bin/perl" heißen, möglicherweise
aber auch "#!/local/bin/perl5". Bei Windows-Servern
dagegen ist eher etwas wie "#!C:\perl\perl.exe" zu
erwarten oder sie reagieren bereits auf die richtige
Dateiendung .pl oder .cgi. Die genauen Angaben kann
Ihnen nur Ihr Provider verraten.
- Das Skript ist per FTP im Binärmodus übertragen
worden. Es muss aber im ASC-II-Modus transferiert
werden (häufiger Fehler).
- Wenn Das Programm auf andere Dateien (meistens mit
der Endung .txt) zugreift, ist es möglich, dass diese
Dateien gar nicht existieren, die Pfade zu diesen
Dateien nicht stimmen oder die Dateirechte dieser
Dateien nicht richtig sind (siehe unten: Keine Speicherung
von Daten).
- Beim Verändern des Quellcodes ist Ihnen ein Syntax-Fehler
unterlaufen: Semikoleon nach einem Perl-Befehl vergessen,
Anführungszeichen im auszugebenden HTML-Code, Klammern
nicht wieder geschlossen?
- Es gibt keine Rückmeldung, der Browser bleibt einfach
weiß
Vermutlich handelt es sich um die gleichen Fehler wie
beim vorherigen Punkt. Damit Sie die Fehlermeldung aber
auch zu Gesicht bekommen, sollte am Anfang des Skriptes
(ab der zweiten Zeile) "use CGI::Carp qw(fatalsToBrowser);"
eingefügt sein. Sollten Sie dann immer noch keine
aussagekräftige Meldung bekommen, ist wahrscheinlich
das nötige Modul nicht auf dem Server installiert
- das ist schlecht - kontaktieren Sie Ihren Provider!
Weitere Möglichkeiten: Beim Verändern des Skriptes haben
Sie vielleicht eine Endlosschleife erzeugt.
- Statt das Skript auszuführen, zeigt der Browser den
Source-Code an
Der Server erkennt nicht, dass es sich um ein Perl-Skript
handelt. Möglicherweise stimmt die Datei-Endung nicht
(häufig bei Windows-Servern). Am besten verwenden Sie
die Endung ".pl", manche Server verlangen aber auch ".cgi".
Es kann aber auch sein, dass das Skript nicht in einem
CGI-Verzeichnis liegt (cgi-bin) oder dass dieses Verzeichnis
nicht die richtigen Rechte besitzt (755, "drwxr-xr-x").
Hinweis: Manche Provider erlauben keine Verwendung von
Unterverzeichnissen unterhalb von cgi-bin (was kein toller
Service ist).
- Das Skript läuft zwar, aber es speichert keine Daten
auf den Server (nur Unix/linux-Server)
Meistens werden Daten in Textdateien gespeichert (Endung
.txt), wenn keine Datenbank verwendet wird. Diese Dateien
sollten in einem Verzeichnis liegen, das für alle les-,
schreibbar und zu öffnen ist (chmod 777, "drwxrwxrwx").
Insofern sollte es schon einmal nicht im cgi-Verzeichnis
liegen. Die Datei selbst - sofern sie nicht vom Skript
selbst angelegt wurde - muss wenigstens für Besitzer und
Gruppe les- und schreibbar sein (664, "-rw-rw-r--"). Bei
Schwierigkeiten auf 666 ("-rw-rw-rw-") oder 777 ("-rwxrwxrwx",
alle Rechte) setzen.
- Verdammt, alles durchgelesen und probiert, aber es
funktioniert immer noch nicht!
Pech gehabt, das war's ... Nein, natürlich nicht! Verwenden
Sie unser SupportForum!
Beschreiben Sie bitte genau, um welches Skript und welche
Version es sich handelt. Welche Fehlermeldung bekommen
Sie? Was haben Sie am Skript verändert? Was genau funktioniert
nicht? Welche möglichen Fehler können Sie bereits ausschließen?
Bitte erwarten Sie aber nicht, dass wir Ihnen nachts um
2.45 Uhr innerhalb der nächsten halben Stunde antworten.
Wir versuchen zwar, so schnell wie möglich Hilfe zu geben,
verbringen aber ab und an auch noch ein Privatleben außerhalb
von Bits und Bytes ;-) - so darf es auch einmal ein paar
Tage dauern. Wenn Sie sich mit einem eigenen Account registrieren
lassen, erhalten Sie sogar automatisch eine Mail, wenn
wir geantwortet haben.
|

|
|
|
|