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.URL
Relative URL des aufgerufenen
.igs
Skript.
Client HTTP-Parameter
Alle 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 Optionen
Alle 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_DEBUG
Debugging 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!