Wenn Sie nicht gerade einen eigenen �ffentlichen Webserver betreiben, den Sie direkt an der Konsole bedienen k�nnen, sind Sie darauf angewiesen, Ihre Daten auf dem Server-Rechner "per Fernbedienung" zu verwalten. Normalerweise geschieht das heutzutage mit Hilfe des FTP-Protokolls. F�r die FTP-Verwaltung von eigenen Daten auf einem Server-Rechner sollten Sie ein gutes FTP-Programm besitzen. Im Link-Verzeichnis des Online-Angebots von SELFHTML aktuell finden Sie eine Produkt�bersicht mit Links zu FTP-Programmen:
SELFHTML-Linkverzeichnis: FTP-Programme
CGI-Scripts k�nnen Sie mit Hilfe eines FTP-Programms in das daf�r vorgesehene CGI-Verzeichnis hochladen. Meistens hat dieses Verzeichnis einen entsprechenden Namen, z.B. cgi-bin. Die Server-Administration oder der Provider muss Ihnen ein solches Verzeichnis eingerichtet haben. Das bedeutet, auf dem �ffentlichen Server-Rechner muss in den
Einstellungen des Webservers ein solches Verzeichnis angegeben sein, und Ihnen muss der Zugriff darauf erlaubt sein. Fragen Sie im Zweifelsfall die Server-Administration oder den Provider danach! (Allgemeines zu diesem Thema finden Sie auch im Abschnitt
Web-Projekte publizieren).
Beim Hochladen von CGI-Scripts oder CGI-Programmen in das CGI-Verzeichnis m�ssen Sie folgendes beachten:
- Perl-Scripts m�ssen immer im ASCII-Modus �bertragen werden. Achten Sie vor dem Hochladen von Perl-Dateien darauf, dass in Ihrem FTP-Programm der ASCII-Modus als �bertragungsmodus eingestellt ist.
- Kompilierte und gelinkte Programme m�ssen dagegen immer im Bin�rmodus �bertragen werden. Achten Sie im FTP-Programm darauf, dass der Bin�rmodus eingestellt ist. Beachten Sie bei kompilierten und gelinkten Programmen auch, dass diese auf dem Server-Rechner nur ausf�hrbar sind, wenn sie f�r das Betriebssystem des Server-Rechners kompiliert und gelinkt wurden. So hat es keinen Sinn, wenn Sie ein unter DOS/Windows zu einer EXE-Datei kompiliertes C-Programm in das CGI-Verzeichnis eines Unix-Rechners hochladen.
- Einige Webserver sind so eingerichtet, dass CGI-Scripts die Dateinamenendung .cgi erhalten m�ssen. Fragen Sie gegebenenfalls Ihren Provider danach! Wenn dies bei Ihnen der Fall ist, benennen Sie beispielsweise ein Perl-Script namens counter.pl einfach in counter.cgi um.
- Wenn der Server-Rechner unter Unix (z.B. Linux) l�uft, m�ssen Sie au�erdem noch angeben, von wem die Programmdatei bzw. die Scriptdatei ausgef�hrt werden darf. Damit alle Besucher Ihrer Web-Seiten Ihr CGI-Script oder CGI-Programm ausf�hren k�nnen, m�ssen Sie das Lese- und Ausf�hrrecht "f�r alle" einstellen. Dies geschieht mit dem Unix-Befehl chmod 755 datei.ext. Wenn Sie beispielsweise ein Perl-Script namens counter.pl hochladen, m�ssen Sie es mit chmod 755 counter.pl allgemein ausf�hrbar machen. Lesen Sie im Zweifelsfall in der Dokumentation Ihres FTP-Programms nach, wie Sie damit die Zugriffsrechte f�r Dateien auf dem fernen Rechner einstellen k�nnen.


Die folgenden Hinweise und organisatorischen �berlegungen sollten Sie beachten:
- Testen Sie Ihre CGI-Scripts bzw. CGI-Programme vor dem �ffentlichen Einsatz im WWW. Am besten tun Sie das offline und in aller Ruhe an Ihrem lokalen Rechner. Dazu m�ssen Sie sich einen eigenen
lokalen Webserver installieren. Wenn Sie Perl-Scripts einsetzen wollen, m�ssen Sie au�erdem Perl lokal installieren.
- Rufen Sie neu ins WWW hochgeladene CGI-Scripts/CGI-Programme nicht gleich von einer viel besuchten Web-Seite aus auf, sondern laden Sie erst eine Test-HTML-Datei mit einem Aufruf des CGI-Programms hoch. So k�nnen Sie auch online erst einmal testen, ob alles einwandfrei funktioniert. Wenn es sich um wichtige Anwendungen wie elektronische Einkaufsk�rbe usw. handelt, sollten Sie das Script in so einer Testumgebung von verschiedenen Personen testen lassen, bevor Sie es �ffentlich zur Verf�gung stellen.
- Die meisten CGI-Scripts speichern Daten in Dateien und/oder lesen diese Dateien aus. Wenn es sich um eine einzige Datendatei handelt, spricht nichts dagegen, diese im CGI-Verzeichnis abzulegen. Bei einem einfachem Seitenzugriffsz�hler, der mit Hilfe eines Perl-Scripts namens counter.pl realisiert wird, ist es beispielsweise sinnvoll, den Z�hlerstand in einer Datei counter.dat zu speichern und diese ebenso wie die Perl-Datei direkt im CGI-Verzeichnis abzulegen. Wenn ein CGI-Script/CGI-Programm jedoch mehrere Dateien verwaltet, ist es sinnvoll, diese in einem eigenen Verzeichnis abzulegen. Dazu k�nnen Sie z.B. unterhalb des CGI-Verzeichnisses Unterverzeichnisse anlegen. So k�nnte etwa ein CGI-basiertes Nachrichtenforum (Bulletin-Board) namens bulletin.pl seine verschiedenen Konfigurations- und aktuellen Datendateien in einem entsprechenden Unterverzeichnis bulletin haben.


Es gibt viele Gr�nde, warum CGI-Scripts auf �ffentlichen Webservern manchmal nicht oder nicht sofort funktionieren. Die folgende Checkliste kann helfen, einige typische Fehler zu vermeiden:
- Falls Sie beim Aufruf des CGI-Scripts einen Fehler mit der Nummer 500 (Internal Server Error) erhalten, kann dies auf einen Syntaxfehler im Perl-Script hinweisen. Notieren Sie dazu im Perl-Script vor anderen konkreten Anweisungen zun�chst folgendes :
use CGI::Carp qw(fatalsToBrowser);
Dadurch erreichen Sie, dass Fehlermeldungen des Perl-Interpreters direkt im Browser-Fenster erscheinen. Falls es noch Fehler im Perl-Script gibt, haben Sie es damit leichter, die Fehlerursache zu finden. Der Fehler mit der Nummer 500 kann aber auch andere Ursachen haben. Kontrollieren Sie z.B., ob das Perl-Script auch wirklich im ASCII-Modus mit FTP zum Server �bertragen wurde. Stellen Sie sicher, dass Sie in dem Perl-Script keine Anweisungen stehen haben, die auf dem Server-Rechner nicht funktionieren (z.B. Aufruf betriebssystemspezifischer Funktionen, Verwendung spezieller Perl-Module, die nicht zum Standard geh�ren und auf dem Server nicht installiert sind usw.). �berpr�fen Sie, ob in der ersten Zeile des Perl-Scripts der richtige Pfad zum Perl-Interpreter angegeben ist.
Wenn Sie Zugriff auf die Error-Log-Datei Ihres Webservers haben, ist es auf jeden Fall empfehlenswert, dort nachzuschauen. Im Error-Log werden alle Fehler, die w�hrend des Server-Betriebs aufgetreten sind, mitgeschrieben. So haben Sie die M�glichkeit, im Zweifelsfall die genaue Fehlerursache zu lokalisieren.
- Falls Sie beim Aufruf des CGI-Scripts einen Fehler mit der Nummer 404 (Document not found) erhalten, �berpr�fen Sie Gro�- und Kleinschreibung von Dateinamen auf dem Server, wenn der Server-Rechner unter einem Unix-Betriebssystem l�uft. Wenn Sie in einem HTML-Formular beispielsweise notiert haben:
<form action="/cgi-bin/auswert.cgi">
,
dann muss die Datei im CGI-Verzeichnis auch tats�chlich auswert.cgi hei�en und nicht etwa Auswert.cgi.
- Falls Sie beim Aufruf des CGI-Scripts einen Fehler mit der Nummer 403 (Forbidden) erhalten, �berpr�fen Sie, ob das Script, falls der Webserver unter einem Unix-Betriebssystem l�uft, mindestens die Rechte 755 hat. �ndern Sie die Rechte gegebenenfalls mit dem chmod-Befehl im FTP-Programm.
- Falls Sie beim Aufruf des CGI-Scripts eine Fehlermeldung Premature end of script headers erhalten, �berpr�fen Sie im Quellcode des Perl-Scripts die Ausgaben, die das Script senden soll. Es muss irgendetwas ausgeben, und zu Beginn dieser Ausgaben muss ein g�ltiger HTTP-Header notiert sein. Typischerweise geschieht das bei HTML-Ausgaben durch einen Befehl wie:
print "Content-type: text/html\n\n";
.
© 2007
Impressum