next up previous contents
Next: Hilfsprogramme Up: Konfiguration Previous: Erweiterte Funktionalität der HTML-Dokumente

CGI-Programme

Das Common Gateway Interface (CGI) ist eine Schnittstelle des Servers, über die er Anwendungsprogramme aufrufen und mit ihnen Informationen austauschen kann. Diese Anwendungsprogramme werden meistens CGI-Programme oder -Skripten genannt und können in jeder Programmiersprache implementiert werden. Der Server ruft auf Nachfrage eines Clients ein CGI-Programm auf, übergibt ihm gegebenfalls Daten, falls der Client welche mitgeschickt hat, und setzt die notwendigen Umgebungsvariablen. Ein CGI-Programm erzeugt daraufhin eine Ausgabe, die vom Server an den Client weitergeschickt wird.

Normalerweise können Server so konfiguriert werden, daß entweder ein Verzeichnis als CGI-Verzeichnis gekennzeichnet wird oder einzelne Dateien als CGI-Programme erkannt werden. Beim Apache-Server wird durch Einfügen einer Anweisung ScriptAlias in die Ressourcen-Konfigurationsdatei und Angabe eines Verzeichnisnamens ein CGI-Verzeichnis als solches gekennzeichnet. Es können beliebig viele CGI-Verzeichnisse bestimmt werden, wobei dann jede darin enthaltene Datei als solche erkannt und vom Server ausgeführt wird.

Die zweite Möglichkeit besteht darin, einen MIME-Typ oder Handler (serverspezifisch) für CGI-Programme einzuführen, der den Server jede Datei mit der festgelegten Endung als CGI-Programm erkennen und ausführen läßt. Die übliche Datei-Endung, die für CGI-Programme verwendet wird, ist .cgi. Der Apache-Server verlangt zusätzlich zu der globalen serverweiten Festlegung des Dateityps .cgi als CGI-Programm eine verzeichnisbasierte Erlaubnis für einzelne Verzeichnisse, in denen CGI-Programme ausgeführt werden sollen. Diese Möglichkeit, CGI-Programme anhand von Dateitypen zu definieren, ist für den Fall nützlich, daß man in einem Verzeichnis nicht nur CGI-Programme speichern möchte, sondern auch andere Dateitypen.

Allgemein stellen CGI-Programme hohe Anforderungen an die Sicherheitseinrichtungen eines Servers und können deswegen eine Bedrohung für den Server darstellen. CGI-Programme werden nämlich unter der User- und Group-ID des Servers ausgeführt und haben somit Zugriff auf die gleichen Ressourcen wie der Server. Deswegen ist es wichtig, darauf zu achten, daß ein Server nie unter root läuft, um einem CGI-Programm dadurch nicht Zugriff auf das gesamte System zu gewähren. Deswegen wurde in der neuesten Version (Version 1.2) des Apache-Servers eine Funktionalität eingebaut, mit deren Hilfe man den Server so konfigurieren kann, daß er CGI-Programme auch unter der User-ID eines Benutzers ausführen kann, dem das CGI-Programm gehört. Diese Funktionalität (suEXEC genannt) wird aber im Rahmen der Diplomarbeit nicht weiter erläutert. Dafür wird auf die Server-Dokumentation und auf [Eil97] verwiesen.

Im Zusammenhang mit CGI-Programmen ist hier noch zu erwähnen, daß es normalerweise sehr schwierig ist, Fehler in den Programmen zu finden. Die Fehlermeldungen eines CGI-Programms werden bei einem Zugriff darauf nirgends ausgegeben, nur die Fehlermeldung des Servers, daß die Ausführung nicht durchgeführt werden konnte. In diesem Fall ist eine Log-Datei für Fehlermeldungen der CGI-Programme von großem Nutzen. Der Apache-Server bietet eine solche an, was in Kapitel [*] im Rahmen des Leistungsmanagements näher erläutert wird.


next up previous contents
Next: Hilfsprogramme Up: Konfiguration Previous: Erweiterte Funktionalität der HTML-Dokumente
Copyright Munich Network Management Team