Mit der CGI-Schnittstelle ist es möglich iG/Script Programme im
Webserver auszuführen um z.B. dynamische Webseiten zu generieren
(z.B. als Resultat einer DB-Anfrage). Damit ein CGI-Script vom
Webserver ausgeführt werden kann, muss es die Dateiendung
.igs aufweisen (z.B.
test.igs). CGI-Skripts werden normalerweise im
Verzeichnis \user\www\igs abgelegt. Es kann
jedoch auch jedes andere vom Webserver publizierte Verzeichnis für
die Ablage von CGI-Skripts verwendet werden.
Damit CGI-Skripts im GeoShop ausgeführt werden können, muss
zuerst im GeoShop Server der Dienst igs einem oder
mehreren ICS-Servern zugewiesen und gestartet werden (s.a. GeoShop
Administrator bzw. Konfigurationsdatei
\user\services\services.srv).
Wenn ein Benutzer auf die URL eines CGI-Skripts zugreift, wird
der Skript vom GeoShop Webserver mit Hilfe von
ics.exe ausgeführt. Der Standardoutput des
CGI-Skripts wird dann als Resultat vom GeoShop Webserver zurück
gegeben.
Für temporäre Dateien erzeugt der Webserver vor dem Aufruf
des Skripts automatisch ein temporäres Verzeichnis. Der Pfad zu
diesem Verzeichnis wird dem Skript als
OPT.temp_dir übergeben. Es ist wichtig, dass
ein CGI-Skript temporäre Zwischenresultate in das Verzeichnis
OPT.temp_dir schreibt. Sonst kann es zu
Konflikten mit anderen gleichzeitig laufenden CGI-Sripts kommen.
Nach der Ausführung des CGI-Scripts wird das Verzeichnis
OPT.temp_dir automatisch wieder
gelöscht.
Neben OPT.temp_dir stellt der GeoShop dem
CGI-Script folgende zusätzliche Laufzeitoptionen zur
Verfügung:
OPT.URLRelative URL des aufgerufenen
.igs Skript.
Client HTTP-ParameterAlle HTTP-Parameter welcher der aufrufende
HTTP-Client schickt in der Form
OPT.<HTTP-Param> (z.B.
OPT.Host,
OPT.User-Agent,
OPT.Accept-Encoding, etc.).
ICS OptionenAlle Optionen, welche ein ICS-Skript zur Laufzeit
erhält (z.B. OPT.user_dir,
OPT.system_dir,
OPT.data_dir, etc.).
![]() | |
Auf die Optionen des GeoShop Server in
|
Für das CGI-Debugging steht folgende Option im Abschnitt
AppServer von
appserver.opt zur Verfügung:
IGS_DEBUGDebugging von CGI-Skripts ein-
(ON) oder ausschalten
(OFF) (Default =
OFF). Wenn die Option auf
ON gesetzt wird, wird der Debugging
Output in die Datei
\data\temp\igs.log geschrieben (s.a.
CGI-Schnittstelle).
Der Standard MIME-Type eines CGI-Skripts ist
text/xml, da die meisten CGI-Skripts im GeoShop
für die Generierung von XML-Dateien verwendet werden (z.B.
SOAP-Schnittstelle oder getCapabilities.igs
des WMS-Server). Falls ein CGI-Skript einen anderen MIME-Type
zurück geben soll (z.B. text/html), muss man
als letzten Befehl im Skript folgende Zeile einfügen:
OPT.mime_type '<MIME-Type>' SERIAL.SAVE_OBJECT
Zum Abschluss ist hier noch ein vollständiges Beispiel für einen CGI-Skript angegeben:
|LICENSE \license\geoshop.lic DISPLAY '<html>' DISPLAY '<head>' DISPLAY '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">' DISPLAY '</head>' DISPLAY '<body>' DISPLAY '<title>hello, world!</title>' DISPLAY '</body>' DISPLAY '</html>' OPT.mime_type 'text/html' SERIAL.SAVE_OBJECT
Falls der obige Skript unter
\user\www\igs\hello.igs abgespeichert wird,
erzeugt der Aufruf der URL
http://localhost:3501/igs/hello.igs im
Webbrowser den folgenden Output:
hello, world!