Mit der CGI-Schnittstelle ist es möglich iG/Script Programme im
Webserver auszuführen um z.B. dynamsche 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:
ICS_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!