Die SkriptOase
SkriptOase
FaQ
SupportForum
SupportLetter
LeseStoff
WarumPerl?
EMail

Ein Projekt der
SilberSteine
FaQ www.skriptoase.de

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!
Commodore-Logo 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:
    1. Auch hieran können die Dateirechte schuld sein - siehe oben: "Permission denied".
    2. 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.
    3. Das Skript ist per FTP im Binärmodus übertragen worden. Es muss aber im ASC-II-Modus transferiert werden (häufiger Fehler).
    4. 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).
    5. 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.
Anzeige Bildpartner
 

  WeiterSagen    SupportForum    SupportLetter    ImPressum    EMail
©  22.04.2004  by SilberSteine