INHALTSVERZEICHNIS zurück zu Teil V CGI-Anwendungen CGI steht für "Common Gateway Interface" und bedeutet, daß via Web-Browser bestimmte Programme auf dem Web-Server ausgeführt werden können, die dann über dieses Interface mit dem Browser kommunizieren. CGI-Applikationen können Unix Shell Scripts oder auch Programme in Perl, C und C++ oder sonstigen Programmiersprachen sein. CGI-Anwendungen müssen im ASCII-Modus zum Server übertragen werden - Dies ist sehr wichtig! Aufgrund der Komplexität können wir Ihnen keine kostenlose Unterstützung zu Ihren eigenen CGI-Programmen geben. Wenn Sie also noch keine Erfahrung im Umgang mit dem CGI haben, empfehlen wir Ihnen das großartige "CGI Developers Guide" von Eugene Eric Kim, erschienen im SAMS-Verlag in deutscher Sprache, ISBN 3-87791-891-3 zum Preis von 89,95 DM. Sollten Sie eine speziell auf Ihre Anforderungen zugeschnittene CGI-Applikation benötigen, können wir dies zu fairen Konditionen für Sie realisieren. Wir entwickeln seit Jahren professionelle, kundenspezifische Software für die verschiedensten Anwendungsbereiche. Für nähere Informationen wenden Sie sich bitte an unseren Application Master. Wohin mit den CGI-Scripts Legen Sie Ihre CGI-Dateien in das Verzeichnis cgi-bin unterhalb Ihres www-Verzeichnisses ab. Pfade zu allen wichtigen Programmen Hier sind die Pfade zu den Programm, die häufig von CGI-Scripts benötigt werden:
Zugriffsrechte setzen Das folgende Beispiel soll den Umgang mit den Zugriffsrechten unter UNIX verdeutlichen. Um die Zugriffsrechte einer Datei oder eines Verzeichnisses anzuzeigen, loggen Sie sich via TELNET ein und verwenden Sie folgenden Befehl: cd Verzeichnisnameum in das gewünschte Verzeichnis unterhalb des aktuellen Verzeichnisses zu wechseln. Wenn Sie nun folgenden Befehl eingeben: ls -l Dateinamewerden die momentanen Zugriffrechte (und weitere Daten) der gewünschten Datei angezeigt. Beispiele zur Verwendung von CHMOD:
Die Zugriffsrechte einer Datei ändern Sie mit dem Befehl chmod (change mode). Für die Datei script.cgi wäre das beispielsweise: chmod u=rwx,g=rx,o=rx script.cgiFür die Datei script.cgi haben Sie dann folgende Rechte vergeben: • Lese-, Schreib- und Ausführungsrecht für den Benutzer (das sind Sie) • Lese- und Ausführungsrechte für die Benutzergruppe (weitere User Ihrer Domain) • Lese- und Ausführungsrechte für alle Anderen Einige Scripts verlangen beispielsweise eine Angabe von chmod 775. Sie können sowohl die numerische als auch die oben beschriebene alphanumerische Variante auf unseren UNIX-Servern benutzen. Die erste Ziffer der numerischen Angabe steht für den Benutzer (Sie), die zweite für die Benutzergruppe und die letzte für alle Anderen. Die Wertigkeiten des numerischen Systems setzen sich wie folgt zusammen: r-- = 4 -w- = 2 --x = 1 -wx = 3 r-x = 5 rw- = 6 rwx = 7Addieren Sie einfach die Wertigkeit von r--, -w- und --x, um auf die gewünschte Nummer zu kommen. Wenn Sie nun folgenden Befehl anwenden: ls -lbekommen Sie die jeweiligen Zugriffsrechte wie folgt angezeigt: -rwxr-xr-xIgnorieren Sie den ersten Strich und teilen Sie die folgenden Zeichen in 3 Gruppen mit je 3 Buchstaben auf. Die erste Gruppe zählt für den Benutzer (Sie), die zweite für die Benutzergruppe und die letzte für alle Anderen. Ein Strich anstelle eines Buchstabens bedeutet, daß für diese Stelle kein Recht vergeben wurde. Einige FTP-Programme erlauben die Änderung der Zugriffsrechte auf eine etwas komfortablere Weise. Wenn Sie FETCH für den Mac benutzen, selektieren Sie die gewünschte Datei mit der Maus und wählen Sie im Remote Menu die Option Change Permissions. Es erscheint ein Fenster, welches die momentanen Zugriffsrechte für diese Datei wie in Abbildung 3a anzeigt. Die Zugriffsrechte können Sie dann einfach durch anklicken der Checkboxen anpassen. ![]() ABBILDUNG 3a WS_FTP für den PC arbeitet ähnlich. Selektieren Sie einfach die gewünschte Datei und drücken Sie die rechte Maustaste. Im Menü wählen Sie dann CHMOD und ein Fenster wie in Abbildung 3b erscheint. ![]() ABBILDUNG 3b Lösungshilfen zu CGI-Problemen Nachfolgend finden Sie Lösungen zu den am häufigsten auftretenden CGI-Problemen im Frage und Antwort Format. Wenn ich mein CGI-Programm aktiviere, erhalte ich die Fehlermeldung "Internal Server Error. The server encountered an internal error or misconfiguration and was unable to complete your request.". Dies wird in der Regel durch ein Problem innerhalb des Scripts verursacht. Loggen Sie sich via Telnet ein und testen Sie das Script direkt lokal auf dem Server um so zu sehen, wo das Problem liegt. Hierzu gehen Sie einfach in das Verzeichnis in dem Sie das Script abgelegt haben und führen es dann aus. Das können Sie auf zwei Arten tun: 1. Unter Angabe des Interpreters (in diesem Fall ist es Perl) perl meinscript.pl2. Oder einfach nur durch Aufruf des Scriptnamens. Dies funktioniert nur, wenn die erste Zeile des Scripts auf den korrekten Serverpfad des Interpreters zeigt. meinscript.pl Bei der
ersten Variante sehen Sie, ob und welcher Fehler innerhalb des Scripts
auftritt. Mit der zweiten Variante können Sie feststellen, ob der Interpreter-Aufruf
in der ersten Zeile des Scripts korrekt ist.
Ich erhalte Fehlermeldungen wie "File Not Found," oder "No Such File or Directory." Übertragen Sie das Script im ASCII-Modus (nicht Binär-Modus) zum Server! Ich erhalte die folgende Fehlermeldung: "Literal @domain now requires backslash at myscript.pl line 3, within string. Execution of myscript.pl aborted due to compilation errors." Dies wird verursacht durch eine Fehlinterpretation von Perl. Das "@"-Zeichen hat in Perl eine spezielle Bedeutung; es identifiziert ein Array (eine Tabelle mit Elementen). Sie sollten dem entsprechenden "@"-Zeichen einen Backslash ("\") voranstellen um Perl zu sagen, daß es sich um ein reguläres Zeichen (z.B. einer E-Mail Adresse) handelt. Ich erhalte die Meldung: "POST not implemented." Sie benutzen möglicherweise eine falsche Referenz für cgiemail. Benutzen Sie die Referenz /cgi-bin/cgiemail/mail.txt. Eine andere Fehlerquelle ist, daß Sie auf ein CGI-Script zeigen, welches Sie nicht in Ihrem cgi-bin Verzeichnis abgelegt haben. Normalerweise bedeutet diese Meldung, daß der Web-Server das gewünschte CGI-Script als reguläre Text-Datei und nicht als ausführbares Programm erkennen kann. Ich bekomme die Meldung: "You don't have permission to access /" Dieser Fehler bedeutet, daß Sie keine index.htm aufgespielt haben. Bitte beachten Sie auch, daß alle Dateien, die mit einem "." im Dateinamen beginnen, unsichtbar sind. Um sie sehen zu können, verwenden Sie den Befehl: ls -al. |