<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wiki-Kai-Behncke</id>
	<title>OSGeo - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wiki-Kai-Behncke"/>
	<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/wiki/Special:Contributions/Wiki-Kai-Behncke"/>
	<updated>2026-04-13T15:07:22Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.9</generator>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Komitee_f%C3%BCr_Bildung_und_Dokumentationserstellung&amp;diff=39066</id>
		<title>Komitee für Bildung und Dokumentationserstellung</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Komitee_f%C3%BCr_Bildung_und_Dokumentationserstellung&amp;diff=39066"/>
		<updated>2009-06-11T15:45:25Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Anleitungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Komitee für Bildung und Dokumentationserstellung ==&lt;br /&gt;
&lt;br /&gt;
Die Aufgabe des Komitees für Bildung und Dokumentationserstellung ist es, die Nutzung der unter dem Dach der OSGeo entwickelten &lt;br /&gt;
Softwareprodukte durch Anleitungen und Tutorials zu unterstützen.&lt;br /&gt;
Diese Anleitungen sollen vorrangig im WIKI erstellt werden, um die Vorteile einer gemeinsamen Erstellung ausnutzen zu können.&lt;br /&gt;
Fühlen Sie sich frei sich als Mitglied in dieses Komitee einzutragen und eigene Anleitungen zu erstellen.&lt;br /&gt;
&lt;br /&gt;
== Mitglieder ==&lt;br /&gt;
* [[User:Kai Behncke | Kai Behncke]]&lt;br /&gt;
* [[User:Peter_panther | Florian Thürkow]]&lt;br /&gt;
* [[User:Simon Appelt | Simon Appelt]]&lt;br /&gt;
* [[User:jtmapmedia | Jörg Thomsen]]&lt;br /&gt;
* [[User:Markus Weißmann | Markus Weißmann]]&lt;br /&gt;
* [[User:Sven Boehme | Sven Boehme]]&lt;br /&gt;
* [[User:Matthias Heber | Matthias Heber]]&lt;br /&gt;
* [[User:Khoffmann | Karsten Hoffmann]]&lt;br /&gt;
* [[User:Astrid Emde | Astrid Emde]]&lt;br /&gt;
* [[User:mikee63 | Mike Elstermann]]&lt;br /&gt;
* [[User:Christian Plass | Christian Plass]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;float-right&amp;quot; style=&amp;quot;background-color:transparent;&amp;quot;&lt;br /&gt;
| [[Image:Autorentreffen_Linuxhotel091001.jpg]]&lt;br /&gt;
|-&lt;br /&gt;
| Treffen zum UMN MapServer Handbuch im Linuxhotel in Essen, Januar 2009&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kommunikation ==&lt;br /&gt;
=== mails ===&lt;br /&gt;
* mapserver-de@freegis.org&lt;br /&gt;
&lt;br /&gt;
=== IRC ===&lt;br /&gt;
* irc://irc.freenode.net/#fossgis&lt;br /&gt;
* [http://widget.mibbit.com/?settings=d6c564d91b45ad67d712a5d287c9a39e&amp;amp;server=irc.freenode.net&amp;amp;channel=%23fossgis Webchat]&lt;br /&gt;
* regelmässige Treffen: Donnerstags 17:30 Uhr&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
* Übernahme von Teilen aus dem englischen UMN Dokument&lt;br /&gt;
* FOSSGIS 2009: [http://www.fossgis.de/konferenz/wiki/Dienstag%2C_17._M%C3%A4rz_2009#Entwickler-_und_Anwendertreffen_ab_17:30_Uhr  Di 17.3.09 17:30 ]&lt;br /&gt;
* evtl. weiteres Treffen Linux-Tag&lt;br /&gt;
* Fertigstellung September 2009 &lt;br /&gt;
* evtl. Intergeo 2009 Bereitstellung des Buches&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anleitungen ==&lt;br /&gt;
* [[Anleitung für Routing (Pgrouting) und UMN MapServer mit den Freien Geodaten aus Osnabrück (Frida) | Anleitung für Routing (Pgrouting) und UMN MapServer mit den Freien Geodaten aus Osnabrück (Frida)]]&lt;br /&gt;
&lt;br /&gt;
* [[Neuerungen des UMN MapServers 5.0 | Neuerungen des UMN MapServers 5.0]]&lt;br /&gt;
&lt;br /&gt;
* [[Installation von MapServer, Apache und PostgreSQL/PostGIS auf Debian 4.0 | Installation von MapServer, Apache und PostgreSQL/PostGIS auf Debian 4.0]]&lt;br /&gt;
&lt;br /&gt;
* [[UMN-Mapserver_Performancetest | UMN-Mapserver Performancetest]]&lt;br /&gt;
&lt;br /&gt;
* [[Wxs mapscript]]&lt;br /&gt;
&lt;br /&gt;
* [[Konstruktion von Diagrammen mit dem UMN MapServer 5.0 | Konstruktion von Diagrammen mit dem UMN MapServer 5.0]]&lt;br /&gt;
&lt;br /&gt;
* [http://trac.mapfish.org/trac/mapfish/wiki/Mapfishprintfornewbies Mapfish-printing (WMS) für Anfänger(Tutorial)]&lt;br /&gt;
&lt;br /&gt;
* [http://pgrouting.postlbs.org/wiki/WorkshopOL2.7andOSM OpenLayers, OSM und pgRouting (Workshop)]&lt;br /&gt;
&lt;br /&gt;
Auf der FOSSGIS 2008 in Freiburg wurde beschlossen, dass im Rahmen von OSGeo Dach (Bildung) gemeinschaftlich das neue Handbuch für den UMN MapServer erstellt wird. Die Erstellung des Buches wird über ein WIKI laufen. Sofern Sie Interesse haben tragen Sie sich bitte in die Mailingliste [http://freegis.org/mailman/listinfo/mapserver-de mapserver-de] ein, und setzen Sie, wenn Sie möchten, oben auch einen namentlichen Link.&lt;br /&gt;
&lt;br /&gt;
Hier gehts zur Gliederung des Handbuches&lt;br /&gt;
[http://wiki.osgeo.org/wiki/HBUMNMapServer_ger http://wiki.osgeo.org/wiki/HBUMNMapServer_ger]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://download.osgeo.org/mapserver/docs/mapserver-users-manual.pdf mapserver user manual ]&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung der Treffen==&lt;br /&gt;
=== IRC 2009-01-22===&lt;br /&gt;
Link zum gesamten Protokoll: http://logs.qgis.org/fossgis/%23fossgis.2009-01-22.log&lt;br /&gt;
&lt;br /&gt;
'''SVN der OSGEO'''&lt;br /&gt;
* wir nutzen das SVN für&lt;br /&gt;
** MapFiles&lt;br /&gt;
** Beispieldaten&lt;br /&gt;
** Grafiken (hochaufgelöste Raster und Vektor-Versionen für den Druck)&lt;br /&gt;
** LaTeX- und PDF-Druck-Versionen zu den gedruckten Ausgaben (Ergänzung, Jörg)&lt;br /&gt;
&lt;br /&gt;
'''Beispieldaten'''&lt;br /&gt;
* Es werden, wie in Essen besprochen, OSM-Daten von Hamburg für die Beispiele genommen&lt;br /&gt;
* Versuch Demo-Rasterdaten für Hamburg zu bekommen (über Kai/Simon/GiN)&lt;br /&gt;
&lt;br /&gt;
'''Finanzierung'''&lt;br /&gt;
* Beantragung der Unterstützung durch den FOSSGIS e. V.&lt;br /&gt;
* Versuch auch über den AK-WebGIS des GiN Zuschüsse zu bekommen.&lt;br /&gt;
Erläuterung für Außenstehende: Es geht hier nicht um die Bezahlung der Arbeitszeiten, nur die Erstattung oder Bezuschussung anfallender Kosten (z.B. Reisekosten) und einer Auslage der Druckkosten.&lt;br /&gt;
&lt;br /&gt;
'''Druck'''&lt;br /&gt;
&lt;br /&gt;
Angebote werden eingeholt, wenn es soweit ist, dass gedruckt werden kann. Eine Option ist die bisherige Druckerei (Schaltungsdienst Lange, Berlin), eine weitere Books on Demand: http://www.bod.de.&lt;br /&gt;
&lt;br /&gt;
'''Grafiker'''&lt;br /&gt;
&lt;br /&gt;
gefunden! &lt;br /&gt;
Chrsitian aus Osnabrück&lt;br /&gt;
&lt;br /&gt;
'''Nächster offizieller IRC'''&lt;br /&gt;
&lt;br /&gt;
Der bisherige Termin, Do 17:30, passt leider nicht mehr allen, ein Neuer muss gefunden werden: http://www.doodle.com/sprra5ehbuvex32d&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Treffen FOSSGIS Hannover 17. 3. 2009===&lt;br /&gt;
* UMN MapServer Handbuchtreffen&lt;br /&gt;
* Wir haben uns auf der FOSSGIS in Hannover getroffen.&lt;br /&gt;
* alle wichtigen Infos sollten sich auf dieser Wikiseite befinden bzw. über die Kategorie http://wiki.osgeo.org/wiki/Category:UMN_MapServer_Handbuch verlinkt sein&lt;br /&gt;
* die Kommunikation zum Handbuch geht vorerst über die deutschsprachige Mapserver Liste (falls es zu viel werden sollte, können wir uns eine Alternative überlegen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Für alle, die neu hinzugekommen sind oder noch bei der Handbucherstellung mitmachen möchten. Hier die wichtigsten Informationen:&lt;br /&gt;
# Link zur OSGeo-Seite&lt;br /&gt;
# das Buch soll im September 2009 zur Intergeo herauskommen&lt;br /&gt;
# das Buch soll über dern FOSSGIS e.V. vertrieben werden&lt;br /&gt;
# alle, die Lust haben mitzuwirken, können sich auf der dieser Seite unter Mitglieder [[Komitee_f%C3%BCr_Bildung_und_Dokumentationserstellung#Mitglieder]] eintragen.&lt;br /&gt;
# für das Editieren im Wiki wird ein Account benötigt. Dieses kann direkt im Wiki über den Link http://wiki.osgeo.org/wiki/Special:UserLogin erstellt werden:&lt;br /&gt;
# Anregungen zu den einzelnen Kapiteln können auf den jeweiligen &amp;quot;Discussion&amp;quot; Seiten der Kapitel hinterlegt werden und mit den Autoren der Kapitel abgesprochen werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Das Treffen&lt;br /&gt;
* neue Interessenten waren anwesend, die sich eine Mitarbeit in Form von Anregungen, kleineren Beiträgen, Korrekturen lesen vorstellen konnten. &lt;br /&gt;
* schön wäre es, wenn das Buch eine Mischung aus Nachschlagewerk und Buch, das auch lesbar ist, würde.&lt;br /&gt;
* Lars hat das mapserver.org Kapitel Mapfile übersetzt&lt;br /&gt;
* das Anwendertreffen auf der FOSSGIS war zu kurz, um in Details zu gehen. Es wäre sinnvoll, wenn wir uns nochmals im Linuxhotel zu einem Wochenende treffen könnten (Termine stehen noch nocht fest)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Demodaten&lt;br /&gt;
Als Demodaten zur Veranschaulichung des Inhalts sollen Raster- und Vektordaten verwendet werden:&lt;br /&gt;
* Vektordaten: OSM (download aktueller Daten über die Geofabrik Bereich Bielefeld oder NRW)&lt;br /&gt;
* Vektordaten: Basisdaten der Stadt Bielefeld (nach Absprache)&lt;br /&gt;
* Rasterdaten: ältere Luftbilder werden von der Stadt Bielefeld bereitgestellt&lt;br /&gt;
* Statistische Daten der Stadt Bielefeld&lt;br /&gt;
* --&amp;gt; Lars Ligner wird sich mit Rainer Nuß und Andreas Wagner wegen der Daten aus Bielefeld in Verbindung setzen&lt;br /&gt;
* --&amp;gt; Jochen Topf wurde angesprochen (Astrid). Er könnte die OSM Daten des gewünschten Bereiches dauerhaft und aktuell bereitstellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Education]]&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35164</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35164"/>
		<updated>2009-02-10T20:10:58Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Änderungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.   &lt;br /&gt;
 &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu nachfolgend.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompilierte Binaries==&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Für Windows sind augenblicklich die folgenden Pakete erhältlich:&lt;br /&gt;
&lt;br /&gt;
ms4w&lt;br /&gt;
&lt;br /&gt;
osgeo4w&lt;br /&gt;
&lt;br /&gt;
==ms4w==&lt;br /&gt;
&lt;br /&gt;
Ms4W steht für &amp;quot;Microsoft for Windows&amp;quot; und kann unter dieser URL http://maptools.org/ms4w/ bezogen werden.&lt;br /&gt;
Das Ms4W-Paket enthält ein komplettes Webserver-Paket (inkl. PHP), den MapServer und auch verschiedene Mapscript-Variationen (PHP, C#, Python, Java). Auch Bibliotheken für den Oracle bzw. den ArcSDE-Support sind enthalten. Die Installation von Ms4W dauert nur wenige Minuten. Das Paket ist dann zu empfehlen wenn Sie sehr schnell zum Ziel kommen möchten und das Kompilieren eines &amp;quot;eigenen&amp;quot; MapServers umgehen wollen.&lt;br /&gt;
&lt;br /&gt;
Eine Installation ist über eine setup.exe-Datei bzw. über das Zip-Paket möglich.&lt;br /&gt;
Nehmen wir einmal das Zip-Paket.&lt;br /&gt;
Laden Sie dieses herunter (hier: ms4w_2.3.1.zip), entpacken Sie dieses und kopieren Sie den entpackten Ordner &amp;quot;ms4w&amp;quot; (und zwar den, welcher eine Fülle von Unterordnern sowie z.B. die Datei&lt;br /&gt;
&amp;quot;README_INSTALL.html&amp;quot; enthält z.B. nach C:.&lt;br /&gt;
&lt;br /&gt;
Im Ordner C:/ms4w liegt nun auch die Datei &amp;quot;apache-install.bat&amp;quot;. Klicken Sie doppelt auf diese und es folgt in einder DOS-Konsole die Meldung:&lt;br /&gt;
&lt;br /&gt;
Installing the Apache MS4W Web Server service&lt;br /&gt;
The Apache MS4W Web Server service is successfully installed.&lt;br /&gt;
Testing httpd.conf....&lt;br /&gt;
Errors reported here must be corrected before the service&lt;br /&gt;
can be started.&lt;br /&gt;
The Apache MS4W Web Server service is starting.&lt;br /&gt;
The Apache MS4W Web Server service was started successfully.&lt;br /&gt;
&lt;br /&gt;
Sicherheitshalber noch ein Doppelklick auf die Datei &amp;quot;setenv.bat&amp;quot; und das wars.......&lt;br /&gt;
&lt;br /&gt;
Geben Sie nun ein:&lt;br /&gt;
http://localhost/cgi-bin/mapserv.exe&lt;br /&gt;
&lt;br /&gt;
dann folgt die Meldung: No query information to decode. QUERY_STRING is set, but empty. &lt;br /&gt;
&lt;br /&gt;
Der MapServer ist betriebsbereit!&lt;br /&gt;
&lt;br /&gt;
===OSGeo4W===&lt;br /&gt;
&lt;br /&gt;
OSGeo4W ist ein Gesamtpaket für eine Win32-Umgebung (Vista, XP, etc.). Es enthält z.B. GRASS-GIS, uDig (auch ein GIS), QGIS, den MapServer und eine ganze Fülle weiterer Pakete.&lt;br /&gt;
Ein Download ist unter dieser URL möglich: http://trac.osgeo.org/osgeo4w/.&lt;br /&gt;
&lt;br /&gt;
Der erste Schritt für die Installation sieht so aus von http://trac.osgeo.org/osgeo4w/&lt;br /&gt;
den Installer herunterzuladen (osgeo4w-setup.exe).&lt;br /&gt;
Auf diesen dann ein Doppleklick, Express Install auwählen und anschließend die gewünschten Pakete &lt;br /&gt;
anklicken (nehmen wir einmal MapServer, den Apache und die Gdal-Bibliothek für Raster- und Vektordaten). Anschließend ein bißchen Geduld haben........&lt;br /&gt;
&lt;br /&gt;
Sofern Sie Desktop-Programme installiert haben finden Sie diese unter&lt;br /&gt;
Start -&amp;gt; Alle Programme -&amp;gt; OSGeo4W&lt;br /&gt;
&lt;br /&gt;
Die installierten Pakete liegen defaultmäßig unter C:/OSGeo4W.&lt;br /&gt;
Aktivieren Sie als erstes den Apache WebServer indem Sie im Verzeichnis C:/OSGeo4w/apache/bin&lt;br /&gt;
die Datei &amp;quot;httpd&amp;quot; aktivieren.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie dann im Browser eingeben http://localhost swo erhalten Sie zunächst einmal die Meldung,dass &lt;br /&gt;
der WebServer funktioniert und das OSGEo-Logo erscheint.&lt;br /&gt;
&lt;br /&gt;
Auch hier bringt ein http://localhost/cgi-bin/mapserv.exe die Meldung:&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty. &lt;br /&gt;
&lt;br /&gt;
Alles roger, der MapServer funktioniert.&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
FGS &amp;amp; Co.&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Die Installation des Mapservers ist nicht trivial, da diese in Abhängigkeit vom verwendeten Betriebssystem und der Erfahrung des Benutzers immer eine Individuelle ist. &lt;br /&gt;
Die praktischen Tests ergaben folgendes Fazit: Die Reihenfolge, in der die einzelnen Pakete installiert werden, ist für die erfolgreiche Installation entscheidend. Tabelle 1 vermittelt einen Überblick über den in der Praxis evaluierten Installationsvorgang des Mapservers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| Reihenfolge&lt;br /&gt;
| Bibliothek&lt;br /&gt;
| Version&lt;br /&gt;
| Optional (j/n)&lt;br /&gt;
| Link&lt;br /&gt;
|-&lt;br /&gt;
| 1 zlib 1.2.3 n www.zlib.net&lt;br /&gt;
| 2 libpng 1.2.32 n www.libpng.org/pub/png&lt;br /&gt;
| 3 libJPEG 6 j www.ijg.org/files&lt;br /&gt;
| 4 Freetype 2.3.5 j www.freetype.org&lt;br /&gt;
| 5 GD 2.0.35 j www.libgd.org&lt;br /&gt;
| 6 Proj.4 4.5.0 j http://proj.maptools.org&lt;br /&gt;
| 7 GDAL 1.4.2 j www.gdal.org&lt;br /&gt;
| 8 shapelib 1.2.9 j http://shapelib.maptools.org&lt;br /&gt;
| 10. Mapserver 4.10.3 http://mapserver.gis.umn.edu&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
==== Installation der Bibliotheken ====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
===Optionen===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35163</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35163"/>
		<updated>2009-02-10T20:06:23Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* OSGeo4W */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.   &lt;br /&gt;
 &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu nachfolgend.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompilierte Binaries==&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Für Windows sind augenblicklich die folgenden Pakete erhältlich:&lt;br /&gt;
&lt;br /&gt;
ms4w&lt;br /&gt;
&lt;br /&gt;
osgeo4w&lt;br /&gt;
&lt;br /&gt;
==ms4w==&lt;br /&gt;
&lt;br /&gt;
Ms4W steht für &amp;quot;Microsoft for Windows&amp;quot; und kann unter dieser URL http://maptools.org/ms4w/ bezogen werden.&lt;br /&gt;
Das Ms4W-Paket enthält ein komplettes Webserver-Paket (inkl. PHP), den MapServer und auch verschiedene Mapscript-Variationen (PHP, C#, Python, Java). Auch Bibliotheken für den Oracle bzw. den ArcSDE-Support sind enthalten. Die Installation von Ms4W dauert nur wenige Minuten. Das Paket ist dann zu empfehlen wenn Sie sehr schnell zum Ziel kommen möchten und das Kompilieren eines &amp;quot;eigenen&amp;quot; MapServers umgehen wollen.&lt;br /&gt;
&lt;br /&gt;
Eine Installation ist über eine setup.exe-Datei bzw. über das Zip-Paket möglich.&lt;br /&gt;
Nehmen wir einmal das Zip-Paket.&lt;br /&gt;
Laden Sie dieses herunter (hier: ms4w_2.3.1.zip), entpacken Sie dieses und kopieren Sie den entpackten Ordner &amp;quot;ms4w&amp;quot; (und zwar den, welcher eine Fülle von Unterordnern sowie z.B. die Datei&lt;br /&gt;
&amp;quot;README_INSTALL.html&amp;quot; enthält z.B. nach C:.&lt;br /&gt;
&lt;br /&gt;
Im Ordner C:/ms4w liegt nun auch die Datei &amp;quot;apache-install.bat&amp;quot;. Klicken Sie doppelt auf diese und es folgt in einder DOS-Konsole die Meldung:&lt;br /&gt;
&lt;br /&gt;
Installing the Apache MS4W Web Server service&lt;br /&gt;
The Apache MS4W Web Server service is successfully installed.&lt;br /&gt;
Testing httpd.conf....&lt;br /&gt;
Errors reported here must be corrected before the service&lt;br /&gt;
can be started.&lt;br /&gt;
The Apache MS4W Web Server service is starting.&lt;br /&gt;
The Apache MS4W Web Server service was started successfully.&lt;br /&gt;
&lt;br /&gt;
Sicherheitshalber noch ein Doppelklick auf die Datei &amp;quot;setenv.bat&amp;quot; und das wars.......&lt;br /&gt;
&lt;br /&gt;
Geben Sie nun ein:&lt;br /&gt;
http://localhost/cgi-bin/mapserv.exe&lt;br /&gt;
&lt;br /&gt;
dann folgt die Meldung: No query information to decode. QUERY_STRING is set, but empty. &lt;br /&gt;
&lt;br /&gt;
Der MapServer ist betriebsbereit!&lt;br /&gt;
&lt;br /&gt;
===OSGeo4W===&lt;br /&gt;
&lt;br /&gt;
OSGeo4W ist ein Gesamtpaket für eine Win32-Umgebung (Vista, XP, etc.). Es enthält z.B. GRASS-GIS, uDig (auch ein GIS), QGIS, den MapServer und eine ganze Fülle weiterer Pakete.&lt;br /&gt;
Ein Download ist unter dieser URL möglich: http://trac.osgeo.org/osgeo4w/.&lt;br /&gt;
&lt;br /&gt;
Der erste Schritt für die Installation sieht so aus von http://trac.osgeo.org/osgeo4w/&lt;br /&gt;
den Installer herunterzuladen (osgeo4w-setup.exe).&lt;br /&gt;
Auf diesen dann ein Doppleklick, Express Install auwählen und anschließend die gewünschten Pakete &lt;br /&gt;
anklicken (nehmen wir einmal MapServer, den Apache und die Gdal-Bibliothek für Raster- und Vektordaten). Anschließend ein bißchen Geduld haben........&lt;br /&gt;
&lt;br /&gt;
Sofern Sie Desktop-Programme installiert haben finden Sie diese unter&lt;br /&gt;
Start -&amp;gt; Alle Programme -&amp;gt; OSGeo4W&lt;br /&gt;
&lt;br /&gt;
Die installierten Pakete liegen defaultmäßig unter C:/OSGeo4W.&lt;br /&gt;
Aktivieren Sie als erstes den Apache WebServer indem Sie im Verzeichnis C:/OSGeo4w/apache/bin&lt;br /&gt;
die Datei &amp;quot;httpd&amp;quot; aktivieren.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie dann im Browser eingeben http://localhost swo erhalten Sie zunächst einmal die Meldung,dass &lt;br /&gt;
der WebServer funktioniert und das OSGEo-Logo erscheint.&lt;br /&gt;
&lt;br /&gt;
Auch hier bringt ein http://localhost/cgi-bin/mapserv.exe die Meldung:&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty. &lt;br /&gt;
&lt;br /&gt;
Alles roger, der MapServer funktioniert.&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
FGS &amp;amp; Co.&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Die Installation des Mapservers ist nicht trivial, da diese in Abhängigkeit vom verwendeten Betriebssystem und der Erfahrung des Benutzers immer eine Individuelle ist. &lt;br /&gt;
Die praktischen Tests ergaben folgendes Fazit: Die Reihenfolge, in der die einzelnen Pakete installiert werden, ist für die erfolgreiche Installation entscheidend. Tabelle 1 vermittelt einen Überblick über den in der Praxis evaluierten Installationsvorgang des Mapservers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| Reihenfolge&lt;br /&gt;
| Bibliothek&lt;br /&gt;
| Version&lt;br /&gt;
| Optional (j/n)&lt;br /&gt;
| Link&lt;br /&gt;
|-&lt;br /&gt;
| 1 zlib 1.2.3 n www.zlib.net&lt;br /&gt;
| 2 libpng 1.2.32 n www.libpng.org/pub/png&lt;br /&gt;
| 3 libJPEG 6 j www.ijg.org/files&lt;br /&gt;
| 4 Freetype 2.3.5 j www.freetype.org&lt;br /&gt;
| 5 GD 2.0.35 j www.libgd.org&lt;br /&gt;
| 6 Proj.4 4.5.0 j http://proj.maptools.org&lt;br /&gt;
| 7 GDAL 1.4.2 j www.gdal.org&lt;br /&gt;
| 8 shapelib 1.2.9 j http://shapelib.maptools.org&lt;br /&gt;
| 10. Mapserver 4.10.3 http://mapserver.gis.umn.edu&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
==== Installation der Bibliotheken ====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35162</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35162"/>
		<updated>2009-02-10T20:04:30Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* OSGeo4W */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.   &lt;br /&gt;
 &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu nachfolgend.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompilierte Binaries==&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Für Windows sind augenblicklich die folgenden Pakete erhältlich:&lt;br /&gt;
&lt;br /&gt;
ms4w&lt;br /&gt;
&lt;br /&gt;
osgeo4w&lt;br /&gt;
&lt;br /&gt;
==ms4w==&lt;br /&gt;
&lt;br /&gt;
Ms4W steht für &amp;quot;Microsoft for Windows&amp;quot; und kann unter dieser URL http://maptools.org/ms4w/ bezogen werden.&lt;br /&gt;
Das Ms4W-Paket enthält ein komplettes Webserver-Paket (inkl. PHP), den MapServer und auch verschiedene Mapscript-Variationen (PHP, C#, Python, Java). Auch Bibliotheken für den Oracle bzw. den ArcSDE-Support sind enthalten. Die Installation von Ms4W dauert nur wenige Minuten. Das Paket ist dann zu empfehlen wenn Sie sehr schnell zum Ziel kommen möchten und das Kompilieren eines &amp;quot;eigenen&amp;quot; MapServers umgehen wollen.&lt;br /&gt;
&lt;br /&gt;
Eine Installation ist über eine setup.exe-Datei bzw. über das Zip-Paket möglich.&lt;br /&gt;
Nehmen wir einmal das Zip-Paket.&lt;br /&gt;
Laden Sie dieses herunter (hier: ms4w_2.3.1.zip), entpacken Sie dieses und kopieren Sie den entpackten Ordner &amp;quot;ms4w&amp;quot; (und zwar den, welcher eine Fülle von Unterordnern sowie z.B. die Datei&lt;br /&gt;
&amp;quot;README_INSTALL.html&amp;quot; enthält z.B. nach C:.&lt;br /&gt;
&lt;br /&gt;
Im Ordner C:/ms4w liegt nun auch die Datei &amp;quot;apache-install.bat&amp;quot;. Klicken Sie doppelt auf diese und es folgt in einder DOS-Konsole die Meldung:&lt;br /&gt;
&lt;br /&gt;
Installing the Apache MS4W Web Server service&lt;br /&gt;
The Apache MS4W Web Server service is successfully installed.&lt;br /&gt;
Testing httpd.conf....&lt;br /&gt;
Errors reported here must be corrected before the service&lt;br /&gt;
can be started.&lt;br /&gt;
The Apache MS4W Web Server service is starting.&lt;br /&gt;
The Apache MS4W Web Server service was started successfully.&lt;br /&gt;
&lt;br /&gt;
Sicherheitshalber noch ein Doppelklick auf die Datei &amp;quot;setenv.bat&amp;quot; und das wars.......&lt;br /&gt;
&lt;br /&gt;
Geben Sie nun ein:&lt;br /&gt;
http://localhost/cgi-bin/mapserv.exe&lt;br /&gt;
&lt;br /&gt;
dann folgt die Meldung: No query information to decode. QUERY_STRING is set, but empty. &lt;br /&gt;
&lt;br /&gt;
Der MapServer ist betriebsbereit!&lt;br /&gt;
&lt;br /&gt;
===OSGeo4W===&lt;br /&gt;
&lt;br /&gt;
OSGeo4W ist ein Gesamtpaket für eine Win32-Umgebung (Vista, XP, etc.). Es enthält z.B. GRASS-GIS, uDig (auch ein GIS), QGIS, den MapServer und eine ganze Fülle weiterer Pakete.&lt;br /&gt;
Ein Download ist unter dieser URL möglich: http://trac.osgeo.org/osgeo4w/.&lt;br /&gt;
&lt;br /&gt;
Der erste Schritt für die Installation sieht so aus von http://trac.osgeo.org/osgeo4w/&lt;br /&gt;
den Installer herunterzuladen (osgeo4w-setup.exe).&lt;br /&gt;
Auf diesen dann ein Doppleklick, Express Install auwählen und anschließend die gewünschten Pakete &lt;br /&gt;
anklicken (nehmen wir einmal MapServer, den Apache und die Gdal-Bibliothek für Raster- und Vektordaten). Anschließend ein bißchen Geduld haben........&lt;br /&gt;
&lt;br /&gt;
Sofern Sie Desktop-Programme installiert haben finden Sie diese unter&lt;br /&gt;
Start -&amp;gt; Alle Programme -&amp;gt; OSGeo4W&lt;br /&gt;
&lt;br /&gt;
Die installierten Pakete liegen defaultmäßig unter C:/OSGeo4W.&lt;br /&gt;
Aktivieren Sie als erstes den Apache WebServer indem Sie im Verzeichnis C:/OSGeo4w/apache/bin&lt;br /&gt;
die Datei &amp;quot;httpd&amp;quot; aktivieren.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie dann im Browser eingeben http://localhost swo erhalten Sie zunächst einmal die Meldung,dass &lt;br /&gt;
der WebServer funktioniert und das OSGEo-Logo erscheint.&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
FGS &amp;amp; Co.&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Die Installation des Mapservers ist nicht trivial, da diese in Abhängigkeit vom verwendeten Betriebssystem und der Erfahrung des Benutzers immer eine Individuelle ist. &lt;br /&gt;
Die praktischen Tests ergaben folgendes Fazit: Die Reihenfolge, in der die einzelnen Pakete installiert werden, ist für die erfolgreiche Installation entscheidend. Tabelle 1 vermittelt einen Überblick über den in der Praxis evaluierten Installationsvorgang des Mapservers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| Reihenfolge&lt;br /&gt;
| Bibliothek&lt;br /&gt;
| Version&lt;br /&gt;
| Optional (j/n)&lt;br /&gt;
| Link&lt;br /&gt;
|-&lt;br /&gt;
| 1 zlib 1.2.3 n www.zlib.net&lt;br /&gt;
| 2 libpng 1.2.32 n www.libpng.org/pub/png&lt;br /&gt;
| 3 libJPEG 6 j www.ijg.org/files&lt;br /&gt;
| 4 Freetype 2.3.5 j www.freetype.org&lt;br /&gt;
| 5 GD 2.0.35 j www.libgd.org&lt;br /&gt;
| 6 Proj.4 4.5.0 j http://proj.maptools.org&lt;br /&gt;
| 7 GDAL 1.4.2 j www.gdal.org&lt;br /&gt;
| 8 shapelib 1.2.9 j http://shapelib.maptools.org&lt;br /&gt;
| 10. Mapserver 4.10.3 http://mapserver.gis.umn.edu&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
==== Installation der Bibliotheken ====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger&amp;diff=35161</id>
		<title>HBUMNMapServer ger</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger&amp;diff=35161"/>
		<updated>2009-02-10T19:56:36Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* B  Bezug und Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Links =&lt;br /&gt;
* die Kategorie zum Handbuch [http://wiki.osgeo.org/wiki/Category:UMN_MapServer_Handbuch Kategorie UMN MapServer Handbuch]&lt;br /&gt;
* [[UMNHB_ger_Lizenzen | Klärung der Lizenzfrage]]&lt;br /&gt;
* [[ Komitee_f%C3%BCr_Bildung_und_Dokumentationserstellung | Komitee für Bildung und Dokumentationserstellung ]]&lt;br /&gt;
&lt;br /&gt;
= Hinweise zur Bearbeitung der Handbuchseiten=&lt;br /&gt;
Aus den Wiki-Seiten der [http://wiki.osgeo.org/wiki/Category:UMN_MapServer_Handbuch Kategorie UMN MapServer Handbuch] soll ein Handbuch in Papierform erstellt werden.&lt;br /&gt;
&lt;br /&gt;
* Der Export aus dem Wiki soll über Wiki2LaTeX (http://www.mediawiki.org/wiki/Extension:Wiki2LaTeX) erfolgen.&lt;br /&gt;
* Der Export/Speicherort der Bilder muss noch geklärt werden&lt;br /&gt;
* [[Vorlage UMN MapServer Handbuch Kapitel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vorgaben Wiki Seiten==&lt;br /&gt;
Damit dieses recht problemlos erfolgen kann muss bei der Bearbeitung der Seiten folgendes beachtet werden:&lt;br /&gt;
* Kapitel&lt;br /&gt;
** Überschriften&lt;br /&gt;
* Bilder:&lt;br /&gt;
* Links&lt;br /&gt;
* Codeblöcke&lt;br /&gt;
* Listen&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= Inhaltsverzeichnis des 'neuen' Handbuchs =&lt;br /&gt;
&lt;br /&gt;
- Änderungen bitte unter das jeweilige Thema fett schreiben '''und auch in den verlinkten Seiten nachführen'''&amp;lt;br&amp;gt;&lt;br /&gt;
- Zuständigkeiten / Autoren im besten Fall mit angeben &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[HBUMNMapServer_ger_Capter_1 | Einführung]]==&lt;br /&gt;
1.1 Aufbau dieses Buches&amp;lt;br&amp;gt;&lt;br /&gt;
1.2 Was ist ein Mapserver?&amp;lt;br&amp;gt;&lt;br /&gt;
* Mit Architektur Webmapping-Amwendung und Positionierung des UMN &amp;lt;br&amp;gt;&lt;br /&gt;
1.2.1 Vorteile des UMN MapServer&amp;lt;br&amp;gt;&lt;br /&gt;
1.3 Die verschiedenen Funktionsweisen&amp;lt;br&amp;gt;&lt;br /&gt;
1.3.1 MapServer als CGI&amp;lt;br&amp;gt;&lt;br /&gt;
1.3.2 MapServer OGC-konform&amp;lt;br&amp;gt;&lt;br /&gt;
1.3.3 MapScript&amp;lt;br&amp;gt;&lt;br /&gt;
1.3.4 ChangeLog&amp;lt;br&amp;gt;&lt;br /&gt;
1.4 Migration&amp;lt;br&amp;gt;&lt;br /&gt;
1.5 Danksagung&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[HBUMNMapServer_ger_Capter_2 | MapFile]]==&lt;br /&gt;
2.1 Bedeutung des Mapﬁles&amp;lt;br&amp;gt;&lt;br /&gt;
2.1.1 MapServer als CGI&amp;lt;br&amp;gt;&lt;br /&gt;
2.1.2 Die Modi&amp;lt;br&amp;gt;&lt;br /&gt;
2.1.3 Die weiteren Parameter&amp;lt;br&amp;gt;&lt;br /&gt;
2.2 Grundlegender Aufbau des Mapﬁles&amp;lt;br&amp;gt;&lt;br /&gt;
2.3 Der Header&amp;lt;br&amp;gt;&lt;br /&gt;
2.4 Die Web-Sektion [[USER:Simon Appelt]]&amp;lt;br&amp;gt;&lt;br /&gt;
2.5 Layer [[USER:Simon Appelt]]&amp;lt;br&amp;gt;&lt;br /&gt;
2.5.1 Gruppierungen von Layern&amp;lt;br&amp;gt;&lt;br /&gt;
2.5.2 Weitere Layer-Optionen&amp;lt;br&amp;gt;&lt;br /&gt;
'''2.5.3 Diagramme (Kai Behncke? / Nicol Hermann)''' &amp;lt;br&amp;gt;&lt;br /&gt;
2.6 Classes&amp;lt;br&amp;gt;&lt;br /&gt;
2.6.1 Gruppierungen von Classes '''-NEU-'''&amp;lt;br&amp;gt;&lt;br /&gt;
   mit vielen Bsp. für Expressions!!!&amp;lt;br&amp;gt;&lt;br /&gt;
2.7 Styles&amp;lt;br&amp;gt;&lt;br /&gt;
2.8 Rasterdaten&amp;lt;br&amp;gt;&lt;br /&gt;
2.8.1 Bildkataloge&amp;lt;br&amp;gt;&lt;br /&gt;
2.8.2 Rasterdaten klassiﬁzieren&amp;lt;br&amp;gt;&lt;br /&gt;
2.8.3 Umprojizieren von Rasterdaten&amp;lt;br&amp;gt;&lt;br /&gt;
2.8.4 Rasterdaten mit GDAL&amp;lt;br&amp;gt;&lt;br /&gt;
2.9 Vektordaten &amp;lt;br&amp;gt;&lt;br /&gt;
2.9.1 Indizes für Shapeﬁles&amp;lt;br&amp;gt;&lt;br /&gt;
2.9.2 Graticule-Layer '''wird zu GRID -NEU-'''&amp;lt;br&amp;gt;&lt;br /&gt;
2.10 Projektionen&amp;lt;br&amp;gt;&lt;br /&gt;
2.10.1 Notation&amp;lt;br&amp;gt;&lt;br /&gt;
2.10.2 Orthographische Projektion&amp;lt;br&amp;gt;&lt;br /&gt;
2.10.3 Projektionen im realen Einsatz&amp;lt;br&amp;gt;&lt;br /&gt;
2.11 Schriften&amp;lt;br&amp;gt;&lt;br /&gt;
2.12 Annotationen &amp;lt;br&amp;gt;&lt;br /&gt;
2.12.1 Die Label-Sektion&amp;lt;br&amp;gt;&lt;br /&gt;
2.12.2 Bitmap-Schriften&amp;lt;br&amp;gt;&lt;br /&gt;
2.12.3 TrueType-Schriften&amp;lt;br&amp;gt;&lt;br /&gt;
2.12.4 Beschriftungen ohne Annotationslayer&amp;lt;br&amp;gt;&lt;br /&gt;
2.12.5 Der Label-Cache&amp;lt;br&amp;gt;&lt;br /&gt;
2.12.6 Hinweise&amp;lt;br&amp;gt;&lt;br /&gt;
2.13 Symbole &amp;lt;br&amp;gt;&lt;br /&gt;
2.13.1 TrueType-Symbole &amp;lt;br&amp;gt;&lt;br /&gt;
2.13.2 Pixmap-Symbole &amp;lt;br&amp;gt;&lt;br /&gt;
2.13.3 Overlay-Symbole &amp;lt;br&amp;gt;&lt;br /&gt;
2.13.4 Beispiele&amp;lt;br&amp;gt;&lt;br /&gt;
2.14 Maßstäbe &amp;lt;br&amp;gt;&lt;br /&gt;
2.15 Legenden [[USER:Astrid Emde]]&amp;lt;br&amp;gt;&lt;br /&gt;
2.15.1 Die klassische MapServer-Legende &amp;lt;br&amp;gt;&lt;br /&gt;
2.15.2 HTML-Legenden &amp;lt;br&amp;gt;&lt;br /&gt;
'''2.15.3 GetLegendGraphics Request''' ( evtl. auch bei WMS 3.2)&amp;lt;br&amp;gt;&lt;br /&gt;
2.16 Templates &amp;lt;br&amp;gt;&lt;br /&gt;
2.16.1 Die verschiedenen Arten von Templates &amp;lt;br&amp;gt;&lt;br /&gt;
2.16.2 Aufbau &amp;lt;br&amp;gt;&lt;br /&gt;
2.17 Metadaten &amp;lt;br&amp;gt;&lt;br /&gt;
2.18 Queries &amp;lt;br&amp;gt;&lt;br /&gt;
2.18.1 Notation &amp;lt;br&amp;gt;&lt;br /&gt;
2.18.2 Query maps &amp;lt;br&amp;gt;&lt;br /&gt;
2.18.3 Weitere Arten von Queries &amp;lt;br&amp;gt;&lt;br /&gt;
2.19 PostgreSQL und PostGIS &amp;lt;br&amp;gt;&lt;br /&gt;
2.20 OGR &amp;lt;br&amp;gt;&lt;br /&gt;
2.21 Speziﬁkation von Ausgabeformaten &amp;lt;br&amp;gt;&lt;br /&gt;
2.21.1 Rasterbilder &amp;lt;br&amp;gt;&lt;br /&gt;
2.21.2 Vektorformate &amp;lt;br&amp;gt;&lt;br /&gt;
2.22 Features &amp;lt;br&amp;gt;&lt;br /&gt;
2.22.1 Fix positionierte Elemente .&amp;lt;br&amp;gt;&lt;br /&gt;
2.23 CGI-Parameter &amp;lt;br&amp;gt;&lt;br /&gt;
2.23.1 Parameter einschränken .&amp;lt;br&amp;gt;&lt;br /&gt;
2.23.2 Variablensubstitution &amp;lt;br&amp;gt;&lt;br /&gt;
2.24 Logs (Lars?)&amp;lt;br&amp;gt;&lt;br /&gt;
2.25 Includes &amp;lt;br&amp;gt;&lt;br /&gt;
2.26 Joins '''-NEU-'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[HBUMNMapServer_ger_Capter_3 | OGC-Konformität ]] ==&lt;br /&gt;
([[User:jtmapmedia | Jörg Thomsen]] bis einschl. 3.3.2 UMN als WMS Client)&lt;br /&gt;
&lt;br /&gt;
=== [[HBUMNMapServer_ger_Capter_3#Warum_macht_man_das.3F | OGC - warum macht man das?]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[HBUMNMapServer_ger_Capter_3#Wie_macht_man_das.3F | OGC - wie macht man das?]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[HBUMNMapServer_ger_Capter_3#Web_Map_Service_.28WMS.29 | Web Map Service (WMS)]] === &lt;br /&gt;
==== [[HBUMNMapServer_ger_Capter_3#UMN_als_WMS_Server | UMN als WMS Server]] ====&lt;br /&gt;
Einführung&lt;br /&gt;
* Map Sektion&lt;br /&gt;
* Layer Sektion&lt;br /&gt;
* Request anhand der Demodaten&lt;br /&gt;
** GetFeatureInfo Besonderheiten&lt;br /&gt;
&lt;br /&gt;
==== UMN als WMS Client ====&lt;br /&gt;
Einführung&lt;br /&gt;
* MAP Sektion &lt;br /&gt;
* LAYER Sektion&lt;br /&gt;
&lt;br /&gt;
=== Web Feature Service (WFS) ===&lt;br /&gt;
==== UMN als WFS Server ====&lt;br /&gt;
Einführung&lt;br /&gt;
* MAP Section&lt;br /&gt;
* LAYER Section&lt;br /&gt;
* --&amp;gt; verschieben nur Verweis in dem Kapitel Projektionen in WFS-Servern&lt;br /&gt;
* Schemas ??? Inhalt&lt;br /&gt;
* Beispiel / Aufrufe &amp;amp; Capabilities &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== UMN als WFS Client ====&lt;br /&gt;
Einführung&lt;br /&gt;
* Map Section&lt;br /&gt;
* LAYER Section&lt;br /&gt;
&lt;br /&gt;
=== UMN als WCS ===&lt;br /&gt;
* Informationen siehe  http://www.mapserver.org/ogc/wcs_server.html&lt;br /&gt;
* Informationen siehe http://www.mapserver.org/ogc/wcs_format.html&lt;br /&gt;
Einführung&lt;br /&gt;
* Map Section&lt;br /&gt;
* LAYER Section&lt;br /&gt;
&lt;br /&gt;
=== Web Map Context ===&lt;br /&gt;
* Das Context-Dokument&lt;br /&gt;
* Den Kontext verwenden &lt;br /&gt;
&lt;br /&gt;
===  Styled Layer Descriptor (SLD) [[USER:Astrid Emde]]===&lt;br /&gt;
* Informationen siehe http://www.mapserver.org/ogc/sld.html &lt;br /&gt;
&lt;br /&gt;
=== Filter Encoding [[USER:Astrid Emde]]===&lt;br /&gt;
* http://www.mapserver.org/ogc/filter_encoding.html&lt;br /&gt;
&lt;br /&gt;
=== WMS TIME ===&lt;br /&gt;
* Informationen siehe http://www.mapserver.org/ogc/wms_time.html&lt;br /&gt;
* Einführung&lt;br /&gt;
* MAP Section&lt;br /&gt;
* LAYER Section&lt;br /&gt;
* Anwendungsbeispiel&lt;br /&gt;
&lt;br /&gt;
=== SOS ===&lt;br /&gt;
* Informationen siehe http://www.mapserver.org/ogc/sos_server.html&lt;br /&gt;
&lt;br /&gt;
=== OWS Clients [[USER:Astrid Emde]]===&lt;br /&gt;
==== Desktop GIS ====&lt;br /&gt;
==== WebGIS ====&lt;br /&gt;
&lt;br /&gt;
== [[HBUMNMapServer_ger_Capter_4 | Datenbankanbindungen]] (Kai Behncke, Florian Thürkow)==&lt;br /&gt;
4.1 PostgreSQL und PostGIS .&amp;lt;br&amp;gt;&lt;br /&gt;
4.1.1 Shapeﬁles in PostGIS laden &amp;lt;br&amp;gt;&lt;br /&gt;
4.1.2 Notation in Layern &amp;lt;br&amp;gt;&lt;br /&gt;
4.1.3 PostGIS außerhalb des MapServers &amp;lt;br&amp;gt;&lt;br /&gt;
'''4.1.3 PgRouting (Kai Behncke, Florian Thuerkow)''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''4.1.4 Ein paar Worte zu MySQL, Oracle (Spatial) etc.''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[HBUMNMapServer_ger_Capter_5 | Demos]] ==&lt;br /&gt;
''kann entfallen''&amp;lt;br&amp;gt;&lt;br /&gt;
5.1 Itasca &amp;lt;br&amp;gt;&lt;br /&gt;
5.2 GMap &amp;lt;br&amp;gt;&lt;br /&gt;
5.3 Wesermarsch&lt;br /&gt;
&lt;br /&gt;
== [[HBUMNMapServer_ger_Capter_6 | MapScript]]==&lt;br /&gt;
6.1 PHP MapScript '''(Nicol Hermann)''' &amp;lt;br&amp;gt;&lt;br /&gt;
6.1.1 Laden des Moduls &amp;lt;br&amp;gt;&lt;br /&gt;
6.1.2 Setzen von Objekt-Eigenschaften .&amp;lt;br&amp;gt;&lt;br /&gt;
6.1.3 Formulareingaben in PHP verarbeiten&amp;lt;br&amp;gt;&lt;br /&gt;
6.1.4 Die mapObj-Klasse &amp;lt;br&amp;gt;&lt;br /&gt;
6.1.5 Fehlerbehandlung &amp;lt;br&amp;gt;&lt;br /&gt;
6.1.6 Die layerObj-Klasse&amp;lt;br&amp;gt;&lt;br /&gt;
6.1.7 Die classObj-Klasse &amp;lt;br&amp;gt;&lt;br /&gt;
'''6.1.7.1 Dynamische Klassifizierungen ''' &amp;lt;br&amp;gt;&lt;br /&gt;
6.1.8 Die imageObj-Klasse &amp;lt;br&amp;gt;&lt;br /&gt;
6.1.9 Die labelObj-Klasse&amp;lt;br&amp;gt;&lt;br /&gt;
6.1.10 Die webObj-Klasse &amp;lt;br&amp;gt;&lt;br /&gt;
6.1.11 Die referenceMapObj-Klasse&amp;lt;br&amp;gt;&lt;br /&gt;
6.1.12 Die colorObj-Klasse &amp;lt;br&amp;gt;&lt;br /&gt;
6.1.13 Die pointObj-Klasse &amp;lt;br&amp;gt;&lt;br /&gt;
6.1.14 Die lineObj-Klasse &amp;lt;br&amp;gt;&lt;br /&gt;
6.1.15 Die projectionObj-Klasse &amp;lt;br&amp;gt;&lt;br /&gt;
6.1.16 Die shapeﬁleObj-Klasse &amp;lt;br&amp;gt;&lt;br /&gt;
'''6.1.16.1 Dynamisches Erzeugen eines Shape-Files''' &amp;lt;br&amp;gt;&lt;br /&gt;
''' 6.1.17 Die SymbolObj-Klasse''' &amp;lt;br&amp;gt;&lt;br /&gt;
''' 6.1.17.1 Dynamisches Erzeugung von Symbol-Objekten''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''6.1.18 Die ShapeObj Klasse ''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''6.1.18.1 Feature-Anlage (Punkt-, Linien, Polygon-Objekte) '''&amp;lt;br&amp;gt;&lt;br /&gt;
'''6.1.18.2 Geometrie-Verarbeibung mit PHP MapScript '''&amp;lt;br&amp;gt;&lt;br /&gt;
6.1.19 Struktur von PHP MapScript-Seiten &amp;lt;br&amp;gt;&lt;br /&gt;
6.1.20 Speichern von Map-Objekten in PHP-Sessions &amp;lt;br&amp;gt;&lt;br /&gt;
6.1.21 Speicherverwaltung mit MapScript &amp;lt;br&amp;gt;&lt;br /&gt;
'''6.1.22 OGC Konformität mit PHP MapScript '''&amp;lt;br&amp;gt;&lt;br /&gt;
'''6.1.22.1 PHP Mapscript als WxS-Server''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''6.1.22.2 Erzeugen und Laden von SLD-Dokumenten''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''6.1.22.3 Erzeugen und Laden von WMS Map Context Dokumenten ''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''6.1.23 Nutzung von PHP Mapscript ohne MapFile'''&amp;lt;br&amp;gt;&lt;br /&gt;
6.2 Weitere Sprachen &amp;lt;br&amp;gt;&lt;br /&gt;
6.2.1 Perl &amp;lt;br&amp;gt;&lt;br /&gt;
6.2.2 Java &amp;lt;br&amp;gt;&lt;br /&gt;
6.2.3 Python &amp;lt;br&amp;gt;&lt;br /&gt;
'''6.2.3 Mapserver goes Web 2.0 - AJAX mit msCross (Florian Thuerkow)''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[HBUMNMapServer_ger_Capter_7 | Zusätzliche Werkzeuge]]==&lt;br /&gt;
7.1 Werkzeuge der Bibliothek Shapelib &amp;lt;br&amp;gt;&lt;br /&gt;
7.1.1 shpdump &amp;lt;br&amp;gt;&lt;br /&gt;
7.1.2 shpcreate, shpadd, dbfcreate und dbfadd &amp;lt;br&amp;gt;&lt;br /&gt;
7.1.3 dbfdump &amp;lt;br&amp;gt;&lt;br /&gt;
7.1.4 shpinfo &amp;lt;br&amp;gt;&lt;br /&gt;
7.1.5 dbﬁnfo &amp;lt;br&amp;gt;&lt;br /&gt;
7.2 Werkzeuge des MapServers&amp;lt;br&amp;gt;&lt;br /&gt;
7.2.1 shp2img&amp;lt;br&amp;gt;&lt;br /&gt;
7.2.2 shptree &amp;lt;br&amp;gt;&lt;br /&gt;
7.2.3 shptreevis &amp;lt;br&amp;gt;&lt;br /&gt;
7.2.4 msencrypt &amp;lt;br&amp;gt;&lt;br /&gt;
7.3 Werkzeuge der GDAL/'''OGR'''-Bibliothek &amp;lt;br&amp;gt;&lt;br /&gt;
7.3.1 gdaltindex &amp;lt;br&amp;gt;&lt;br /&gt;
'''7.3.2 gdalinfo''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''7.3.3 ogrinfo''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''7.3.4 FWTools''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===7.4 Erzeugung von MapFiles [[USER:Astrid Emde]]===&lt;br /&gt;
====7.4.1 QGIS ====&lt;br /&gt;
====7.4.1 gvSIG ==== &lt;br /&gt;
====7.4.2 MapStorer ====&lt;br /&gt;
====7.4.3 AVEIN! / AMEIN! ====&lt;br /&gt;
====7.4.4 MapEdit ====&lt;br /&gt;
&lt;br /&gt;
== II Anhang ==&lt;br /&gt;
===A [[HBUMNMapServer_ger_Capter_Referenz | Referenz]] ===&lt;br /&gt;
A.1 Limits &amp;lt;br&amp;gt;&lt;br /&gt;
A.2 Organisation der Daten &amp;lt;br&amp;gt;&lt;br /&gt;
A.3 Änderungen &amp;lt;br&amp;gt;&lt;br /&gt;
A.3.1 3.6 nach 4.0&amp;lt;br&amp;gt;&lt;br /&gt;
A.3.2 3.5 nach 3.6&amp;lt;br&amp;gt;&lt;br /&gt;
A.4 PHP MapScript &amp;lt;br&amp;gt;&lt;br /&gt;
A.4.1 Konstanten &amp;lt;br&amp;gt;&lt;br /&gt;
A.4.2 Allgemeine Funktionen &amp;lt;br&amp;gt;&lt;br /&gt;
A.4.3 mapObj&amp;lt;br&amp;gt;&lt;br /&gt;
A.4.4 layerObj .&amp;lt;br&amp;gt;&lt;br /&gt;
A.4.5 classObj &amp;lt;br&amp;gt;&lt;br /&gt;
A.4.6 styleObj&amp;lt;br&amp;gt;&lt;br /&gt;
A.4.7 imageObj&amp;lt;br&amp;gt;&lt;br /&gt;
A.4.8 labelObj &amp;lt;br&amp;gt;&lt;br /&gt;
A.4.9 labelCacheObj .&amp;lt;br&amp;gt;&lt;br /&gt;
A.4.10 webObj &amp;lt;br&amp;gt;&lt;br /&gt;
A.4.11 referenceMapObj &amp;lt;br&amp;gt;&lt;br /&gt;
A.4.12 colorObj &amp;lt;br&amp;gt;&lt;br /&gt;
A.4.13 pointObj &amp;lt;br&amp;gt;&lt;br /&gt;
A.4.14 lineObj &amp;lt;br&amp;gt;&lt;br /&gt;
A.4.15 rectObj &amp;lt;br&amp;gt;&lt;br /&gt;
A.4.16 shapeObj &amp;lt;br&amp;gt;&lt;br /&gt;
A.4.17 projectionObj &amp;lt;br&amp;gt;&lt;br /&gt;
A.4.18 shapeﬁleObj &amp;lt;br&amp;gt;&lt;br /&gt;
A.4.19 resultCacheMemberObj &amp;lt;br&amp;gt;&lt;br /&gt;
A.4.20 scalebarObj &amp;lt;br&amp;gt;&lt;br /&gt;
A.4.21 legendObj &amp;lt;br&amp;gt;&lt;br /&gt;
A.4.22 outputformatObj .&amp;lt;br&amp;gt;&lt;br /&gt;
A.4.23 gridObj &amp;lt;br&amp;gt;&lt;br /&gt;
A.4.24 errorObj &amp;lt;br&amp;gt;&lt;br /&gt;
'''A.4.25 symbolObj''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''A.4.26 querymapObj''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''A.4.27 owsrequestObj''' &amp;lt;br&amp;gt;&lt;br /&gt;
'''A.4.28 imageObj''' &amp;lt;br&amp;gt;&lt;br /&gt;
A.5 CGI-Parameter &amp;lt;br&amp;gt;&lt;br /&gt;
A.5.1 Normale Parameter .&amp;lt;br&amp;gt;&lt;br /&gt;
A.5.2 CGI-Modus .&amp;lt;br&amp;gt;&lt;br /&gt;
A.5.3 Parameter für Java-Applets &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== B [[HBUMNMapServer_ger_Capter_Bezug | Bezug und Installation]] ==&lt;br /&gt;
*Florian Thürkow, Kai Behncke ''' (Nur als Kapitel im Anhang?, finde ich zu wenig, nh)&lt;br /&gt;
    * 1 Bezug&lt;br /&gt;
          o 1.1 Vorkompilierte Binaries&lt;br /&gt;
                + 1.1.1 Windows&lt;br /&gt;
          o 1.2 ms4w&lt;br /&gt;
                + 1.2.1 OSGeo4W&lt;br /&gt;
                + 1.2.2 Linux&lt;br /&gt;
          o 1.3 Quelltexte&lt;br /&gt;
                + 1.3.1 Bibliotheken&lt;br /&gt;
                      # 1.3.1.1 Installation der Bibliotheken&lt;br /&gt;
                + 1.3.2 Apache Webserver&lt;br /&gt;
                + 1.3.3 PostgreSQL/PostGIS&lt;br /&gt;
                + 1.3.4 PHP&lt;br /&gt;
                + 1.3.5 UMN MapServer&lt;br /&gt;
          o 1.4 Änderungen&lt;br /&gt;
&lt;br /&gt;
==C [[HBUMNMapServer_ger_Capter_Migration | Migration]] 239==&lt;br /&gt;
C.1 Von Version 3.6 nach Version 4.0&amp;lt;br&amp;gt;&lt;br /&gt;
'''raus, Migration 4.x nach 5.x'''&amp;lt;br&amp;gt;&lt;br /&gt;
C.1.1 Geänderte und neue Parameter &amp;lt;br&amp;gt;&lt;br /&gt;
C.1.2 MapServer kompilieren &amp;lt;br&amp;gt;&lt;br /&gt;
C.1.3 Queries &amp;lt;br&amp;gt;&lt;br /&gt;
C.1.4 Diverse Probleme&amp;lt;br&amp;gt;&lt;br /&gt;
C.1.5 MapScript &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== D [[HBUMNMapServer_ger_Capter_Sicherheit | Sicherheit]]==&lt;br /&gt;
D.1 Komprommittierung des MapServer-Rechners &amp;lt;br&amp;gt;&lt;br /&gt;
D.2 Zugänglichkeit der Originaldaten &amp;lt;br&amp;gt;&lt;br /&gt;
D.3 Verschleiern des Mapﬁlenamens &amp;lt;br&amp;gt;&lt;br /&gt;
D.4 MapScript-Anwendungen&amp;lt;br&amp;gt;&lt;br /&gt;
D.5 Die Clientseite: Active Scripting &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==E [[HBUMNMapServer_ger_Capter_Performance | Tips zur Performance]] ==&lt;br /&gt;
E.1 Vermeiden Sie unnötige Funktionalität&amp;lt;br&amp;gt;&lt;br /&gt;
E.2 Nutzen Sie MINSCALE und MAXSCALE &amp;lt;br&amp;gt;&lt;br /&gt;
'''Kann raus - MINSCALEDENOM und MAXSCALEDENOM''' &amp;lt;br&amp;gt;&lt;br /&gt;
E.3 Legen Sie Indizes an &amp;lt;br&amp;gt;&lt;br /&gt;
E.4 Kacheln Sie Ihre Daten &amp;lt;br&amp;gt;&lt;br /&gt;
E.5 Kompression muß verstanden werden &amp;lt;br&amp;gt;&lt;br /&gt;
E.6 Datenbankabfragen .&amp;lt;br&amp;gt;&lt;br /&gt;
E.7 Hardware &amp;lt;br&amp;gt;&lt;br /&gt;
E.8 Schließlich: Zeigen Sie nie alles auf einmal&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Projektionen ==&lt;br /&gt;
=== die EPSG ===&lt;br /&gt;
&lt;br /&gt;
== F [[HBUMNMapServer_ger_Capter_Formate | Unterstützte Formate]]==&lt;br /&gt;
F.1 Lesbare Formate&amp;lt;br&amp;gt;&lt;br /&gt;
F.1.1 GD &amp;lt;br&amp;gt;&lt;br /&gt;
F.1.2 Räumliche Datenbanken &amp;lt;br&amp;gt;&lt;br /&gt;
F.1.3 Rasterformate mit GDAL &amp;lt;br&amp;gt;&lt;br /&gt;
F.1.4 Vektorformate mit OGR &amp;lt;br&amp;gt;&lt;br /&gt;
'''F.1.5 ArcSDE (Florian Thuerkow)''' &amp;lt;br&amp;gt;&lt;br /&gt;
F.2 Schreibbare Formate &amp;lt;br&amp;gt;&lt;br /&gt;
F.3 Nicht unterstützte Formate&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==G [[HBUMNMapServer_ger_Capter_Internet | MapServer im Internet]] ==&lt;br /&gt;
G.1 Website &amp;lt;br&amp;gt;&lt;br /&gt;
G.2 Mailinglisten &amp;lt;br&amp;gt;&lt;br /&gt;
G.2.1 Archiv &amp;lt;br&amp;gt;&lt;br /&gt;
G.2.2 Wiki &amp;lt;br&amp;gt;&lt;br /&gt;
G.2.3 Forum &amp;lt;br&amp;gt;&lt;br /&gt;
G.3 Beispielseiten &amp;lt;br&amp;gt;&lt;br /&gt;
G.3.1 Capabilities XML &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==H [[HBUMNMapServer_ger_Capter_Lizenz | Lizenz der Software]] ==&lt;br /&gt;
H.1 Die Lizenz aus der Datei README &amp;lt;br&amp;gt;&lt;br /&gt;
H.2 Erläuterungen&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Inhaltsverzeichnis aus der internationalen Diskussion =&lt;br /&gt;
&lt;br /&gt;
Kurzes Update zum internationalen User Manual (09.04.2008). Jeff McKenna hat gestern ein PDF mit dem ersten Entwurf des Buches veröffentlicht. Der Entwurf umfasst 134 Seiten und ist unter der Adresse: &lt;br /&gt;
http://download.osgeo.org/mapserver/docs/mapserver-users-manual.pdf (1MB)&lt;br /&gt;
einsehbar.&lt;br /&gt;
&lt;br /&gt;
Some comments:&lt;br /&gt;
&lt;br /&gt;
- has gaping holes &amp;lt;br&amp;gt;&lt;br /&gt;
- plan is to use SteveL's demo as part of the missing 'application' section &amp;lt;br&amp;gt;&lt;br /&gt;
- most if not all examples in this doc were manually executed, and in many cases i've updated the associated existing website docs accordingly &amp;lt;br&amp;gt;&lt;br /&gt;
- many more existing website docs will be ported into the Appendix &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
-------&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier die Zusammenfassung zum Thread 'Feedback required: plans for Downloadable Users Manual' auf der mapserver-dev Liste. &lt;br /&gt;
Der Original-Thread findet sich unter:&lt;br /&gt;
http://www.nabble.com/Feedback-required:-plans-for-Downloadable-Users-Manual-td16260533.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vorgeschlagen wurde zunächst folgende Struktur: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Table of Contents &amp;lt;br&amp;gt;&lt;br /&gt;
-----------------&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Introduction &amp;lt;br&amp;gt;&lt;br /&gt;
Getting Started &amp;lt;br&amp;gt;&lt;br /&gt;
- Installing &amp;lt;br&amp;gt;&lt;br /&gt;
- Architecture of MapServer &amp;lt;br&amp;gt;&lt;br /&gt;
Preparing Data &amp;lt;br&amp;gt;&lt;br /&gt;
- The .Map File &amp;lt;br&amp;gt;&lt;br /&gt;
- Supported Formats &amp;lt;br&amp;gt;&lt;br /&gt;
- Tips and Tricks &amp;lt;br&amp;gt;&lt;br /&gt;
- Factors Affecting Performance &amp;lt;br&amp;gt;&lt;br /&gt;
Building a MapServer Application &amp;lt;br&amp;gt;&lt;br /&gt;
- Flavors &amp;lt;br&amp;gt;&lt;br /&gt;
- Example Code &amp;lt;br&amp;gt;&lt;br /&gt;
Community &amp;lt;br&amp;gt;&lt;br /&gt;
- History of MapServer &amp;lt;br&amp;gt;&lt;br /&gt;
- Project Steering Committee &amp;lt;br&amp;gt;&lt;br /&gt;
- Contributing &amp;lt;br&amp;gt;&lt;br /&gt;
- Getting Help &amp;lt;br&amp;gt;&lt;br /&gt;
- Conferences/Workshops&lt;br /&gt;
Glossary &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als inhaltliche Ergänzungen wurden dann noch folgende Punkte vorgeschlagen:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
- client software (ka-map!, OpenLayers, GeoMoose, PMapper, etc.) &amp;lt;br&amp;gt;&lt;br /&gt;
- map file management software (MapStorer, any others)&amp;lt;br&amp;gt;&lt;br /&gt;
- including copies of all HOWTOs and references in the appendices? &amp;lt;br&amp;gt;&lt;br /&gt;
- configuration of an application and data.&amp;lt;br&amp;gt;&lt;br /&gt;
- include a complete production sample mapfile like Bob Basques Googlish mapfile &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35160</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35160"/>
		<updated>2009-02-10T19:52:04Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Bezug */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.   &lt;br /&gt;
 &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu nachfolgend.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompilierte Binaries==&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Für Windows sind augenblicklich die folgenden Pakete erhältlich:&lt;br /&gt;
&lt;br /&gt;
ms4w&lt;br /&gt;
&lt;br /&gt;
osgeo4w&lt;br /&gt;
&lt;br /&gt;
==ms4w==&lt;br /&gt;
&lt;br /&gt;
Ms4W steht für &amp;quot;Microsoft for Windows&amp;quot; und kann unter dieser URL http://maptools.org/ms4w/ bezogen werden.&lt;br /&gt;
Das Ms4W-Paket enthält ein komplettes Webserver-Paket (inkl. PHP), den MapServer und auch verschiedene Mapscript-Variationen (PHP, C#, Python, Java). Auch Bibliotheken für den Oracle bzw. den ArcSDE-Support sind enthalten. Die Installation von Ms4W dauert nur wenige Minuten. Das Paket ist dann zu empfehlen wenn Sie sehr schnell zum Ziel kommen möchten und das Kompilieren eines &amp;quot;eigenen&amp;quot; MapServers umgehen wollen.&lt;br /&gt;
&lt;br /&gt;
Eine Installation ist über eine setup.exe-Datei bzw. über das Zip-Paket möglich.&lt;br /&gt;
Nehmen wir einmal das Zip-Paket.&lt;br /&gt;
Laden Sie dieses herunter (hier: ms4w_2.3.1.zip), entpacken Sie dieses und kopieren Sie den entpackten Ordner &amp;quot;ms4w&amp;quot; (und zwar den, welcher eine Fülle von Unterordnern sowie z.B. die Datei&lt;br /&gt;
&amp;quot;README_INSTALL.html&amp;quot; enthält z.B. nach C:.&lt;br /&gt;
&lt;br /&gt;
Im Ordner C:/ms4w liegt nun auch die Datei &amp;quot;apache-install.bat&amp;quot;. Klicken Sie doppelt auf diese und es folgt in einder DOS-Konsole die Meldung:&lt;br /&gt;
&lt;br /&gt;
Installing the Apache MS4W Web Server service&lt;br /&gt;
The Apache MS4W Web Server service is successfully installed.&lt;br /&gt;
Testing httpd.conf....&lt;br /&gt;
Errors reported here must be corrected before the service&lt;br /&gt;
can be started.&lt;br /&gt;
The Apache MS4W Web Server service is starting.&lt;br /&gt;
The Apache MS4W Web Server service was started successfully.&lt;br /&gt;
&lt;br /&gt;
Sicherheitshalber noch ein Doppelklick auf die Datei &amp;quot;setenv.bat&amp;quot; und das wars.......&lt;br /&gt;
&lt;br /&gt;
Geben Sie nun ein:&lt;br /&gt;
http://localhost/cgi-bin/mapserv.exe&lt;br /&gt;
&lt;br /&gt;
dann folgt die Meldung: No query information to decode. QUERY_STRING is set, but empty. &lt;br /&gt;
&lt;br /&gt;
Der MapServer ist betriebsbereit!&lt;br /&gt;
&lt;br /&gt;
===OSGeo4W===&lt;br /&gt;
&lt;br /&gt;
OSGeo4W ist ein Gesamtpaket für eine Win32-Umgebung (Vista, XP, etc.). Es enthält z.B. GRASS-GIS, uDig (auch ein GIS), QGIS, den MapServer und eine ganze Fülle weiterer Pakete.&lt;br /&gt;
Ein Download ist unter dieser URL möglich: http://trac.osgeo.org/osgeo4w/.&lt;br /&gt;
&lt;br /&gt;
Der erste Schritt für die Installation sieht so aus von http://trac.osgeo.org/osgeo4w/&lt;br /&gt;
den Installer herunterzuladen (osgeo4w-setup.exe).&lt;br /&gt;
Auf diesen dann ein Doppleklick, Express Install auwählen und anschließend die gewünschten Pakete &lt;br /&gt;
anklicken (nehmen wir einmal MapServer, den Apache und die Gdal-Bibliothek für Raster- und Vektordaten). Anschließend ein bißchen Geduld haben........&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
FGS &amp;amp; Co.&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Die Installation des Mapservers ist nicht trivial, da diese in Abhängigkeit vom verwendeten Betriebssystem und der Erfahrung des Benutzers immer eine Individuelle ist. &lt;br /&gt;
Die praktischen Tests ergaben folgendes Fazit: Die Reihenfolge, in der die einzelnen Pakete installiert werden, ist für die erfolgreiche Installation entscheidend. Tabelle 1 vermittelt einen Überblick über den in der Praxis evaluierten Installationsvorgang des Mapservers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| Reihenfolge&lt;br /&gt;
| Bibliothek&lt;br /&gt;
| Version&lt;br /&gt;
| Optional (j/n)&lt;br /&gt;
| Link&lt;br /&gt;
|-&lt;br /&gt;
| 1 zlib 1.2.3 n www.zlib.net&lt;br /&gt;
| 2 libpng 1.2.32 n www.libpng.org/pub/png&lt;br /&gt;
| 3 libJPEG 6 j www.ijg.org/files&lt;br /&gt;
| 4 Freetype 2.3.5 j www.freetype.org&lt;br /&gt;
| 5 GD 2.0.35 j www.libgd.org&lt;br /&gt;
| 6 Proj.4 4.5.0 j http://proj.maptools.org&lt;br /&gt;
| 7 GDAL 1.4.2 j www.gdal.org&lt;br /&gt;
| 8 shapelib 1.2.9 j http://shapelib.maptools.org&lt;br /&gt;
| 10. Mapserver 4.10.3 http://mapserver.gis.umn.edu&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
==== Installation der Bibliotheken ====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35159</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35159"/>
		<updated>2009-02-10T19:51:43Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Bezug */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.   &lt;br /&gt;
 &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompilierte Binaries==&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Für Windows sind augenblicklich die folgenden Pakete erhältlich:&lt;br /&gt;
&lt;br /&gt;
ms4w&lt;br /&gt;
&lt;br /&gt;
osgeo4w&lt;br /&gt;
&lt;br /&gt;
==ms4w==&lt;br /&gt;
&lt;br /&gt;
Ms4W steht für &amp;quot;Microsoft for Windows&amp;quot; und kann unter dieser URL http://maptools.org/ms4w/ bezogen werden.&lt;br /&gt;
Das Ms4W-Paket enthält ein komplettes Webserver-Paket (inkl. PHP), den MapServer und auch verschiedene Mapscript-Variationen (PHP, C#, Python, Java). Auch Bibliotheken für den Oracle bzw. den ArcSDE-Support sind enthalten. Die Installation von Ms4W dauert nur wenige Minuten. Das Paket ist dann zu empfehlen wenn Sie sehr schnell zum Ziel kommen möchten und das Kompilieren eines &amp;quot;eigenen&amp;quot; MapServers umgehen wollen.&lt;br /&gt;
&lt;br /&gt;
Eine Installation ist über eine setup.exe-Datei bzw. über das Zip-Paket möglich.&lt;br /&gt;
Nehmen wir einmal das Zip-Paket.&lt;br /&gt;
Laden Sie dieses herunter (hier: ms4w_2.3.1.zip), entpacken Sie dieses und kopieren Sie den entpackten Ordner &amp;quot;ms4w&amp;quot; (und zwar den, welcher eine Fülle von Unterordnern sowie z.B. die Datei&lt;br /&gt;
&amp;quot;README_INSTALL.html&amp;quot; enthält z.B. nach C:.&lt;br /&gt;
&lt;br /&gt;
Im Ordner C:/ms4w liegt nun auch die Datei &amp;quot;apache-install.bat&amp;quot;. Klicken Sie doppelt auf diese und es folgt in einder DOS-Konsole die Meldung:&lt;br /&gt;
&lt;br /&gt;
Installing the Apache MS4W Web Server service&lt;br /&gt;
The Apache MS4W Web Server service is successfully installed.&lt;br /&gt;
Testing httpd.conf....&lt;br /&gt;
Errors reported here must be corrected before the service&lt;br /&gt;
can be started.&lt;br /&gt;
The Apache MS4W Web Server service is starting.&lt;br /&gt;
The Apache MS4W Web Server service was started successfully.&lt;br /&gt;
&lt;br /&gt;
Sicherheitshalber noch ein Doppelklick auf die Datei &amp;quot;setenv.bat&amp;quot; und das wars.......&lt;br /&gt;
&lt;br /&gt;
Geben Sie nun ein:&lt;br /&gt;
http://localhost/cgi-bin/mapserv.exe&lt;br /&gt;
&lt;br /&gt;
dann folgt die Meldung: No query information to decode. QUERY_STRING is set, but empty. &lt;br /&gt;
&lt;br /&gt;
Der MapServer ist betriebsbereit!&lt;br /&gt;
&lt;br /&gt;
===OSGeo4W===&lt;br /&gt;
&lt;br /&gt;
OSGeo4W ist ein Gesamtpaket für eine Win32-Umgebung (Vista, XP, etc.). Es enthält z.B. GRASS-GIS, uDig (auch ein GIS), QGIS, den MapServer und eine ganze Fülle weiterer Pakete.&lt;br /&gt;
Ein Download ist unter dieser URL möglich: http://trac.osgeo.org/osgeo4w/.&lt;br /&gt;
&lt;br /&gt;
Der erste Schritt für die Installation sieht so aus von http://trac.osgeo.org/osgeo4w/&lt;br /&gt;
den Installer herunterzuladen (osgeo4w-setup.exe).&lt;br /&gt;
Auf diesen dann ein Doppleklick, Express Install auwählen und anschließend die gewünschten Pakete &lt;br /&gt;
anklicken (nehmen wir einmal MapServer, den Apache und die Gdal-Bibliothek für Raster- und Vektordaten). Anschließend ein bißchen Geduld haben........&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
FGS &amp;amp; Co.&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Die Installation des Mapservers ist nicht trivial, da diese in Abhängigkeit vom verwendeten Betriebssystem und der Erfahrung des Benutzers immer eine Individuelle ist. &lt;br /&gt;
Die praktischen Tests ergaben folgendes Fazit: Die Reihenfolge, in der die einzelnen Pakete installiert werden, ist für die erfolgreiche Installation entscheidend. Tabelle 1 vermittelt einen Überblick über den in der Praxis evaluierten Installationsvorgang des Mapservers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| Reihenfolge&lt;br /&gt;
| Bibliothek&lt;br /&gt;
| Version&lt;br /&gt;
| Optional (j/n)&lt;br /&gt;
| Link&lt;br /&gt;
|-&lt;br /&gt;
| 1 zlib 1.2.3 n www.zlib.net&lt;br /&gt;
| 2 libpng 1.2.32 n www.libpng.org/pub/png&lt;br /&gt;
| 3 libJPEG 6 j www.ijg.org/files&lt;br /&gt;
| 4 Freetype 2.3.5 j www.freetype.org&lt;br /&gt;
| 5 GD 2.0.35 j www.libgd.org&lt;br /&gt;
| 6 Proj.4 4.5.0 j http://proj.maptools.org&lt;br /&gt;
| 7 GDAL 1.4.2 j www.gdal.org&lt;br /&gt;
| 8 shapelib 1.2.9 j http://shapelib.maptools.org&lt;br /&gt;
| 10. Mapserver 4.10.3 http://mapserver.gis.umn.edu&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
==== Installation der Bibliotheken ====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35158</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35158"/>
		<updated>2009-02-10T19:49:33Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* OSGeo4W */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompilierte Binaries==&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Für Windows sind augenblicklich die folgenden Pakete erhältlich:&lt;br /&gt;
&lt;br /&gt;
ms4w&lt;br /&gt;
&lt;br /&gt;
osgeo4w&lt;br /&gt;
&lt;br /&gt;
==ms4w==&lt;br /&gt;
&lt;br /&gt;
Ms4W steht für &amp;quot;Microsoft for Windows&amp;quot; und kann unter dieser URL http://maptools.org/ms4w/ bezogen werden.&lt;br /&gt;
Das Ms4W-Paket enthält ein komplettes Webserver-Paket (inkl. PHP), den MapServer und auch verschiedene Mapscript-Variationen (PHP, C#, Python, Java). Auch Bibliotheken für den Oracle bzw. den ArcSDE-Support sind enthalten. Die Installation von Ms4W dauert nur wenige Minuten. Das Paket ist dann zu empfehlen wenn Sie sehr schnell zum Ziel kommen möchten und das Kompilieren eines &amp;quot;eigenen&amp;quot; MapServers umgehen wollen.&lt;br /&gt;
&lt;br /&gt;
Eine Installation ist über eine setup.exe-Datei bzw. über das Zip-Paket möglich.&lt;br /&gt;
Nehmen wir einmal das Zip-Paket.&lt;br /&gt;
Laden Sie dieses herunter (hier: ms4w_2.3.1.zip), entpacken Sie dieses und kopieren Sie den entpackten Ordner &amp;quot;ms4w&amp;quot; (und zwar den, welcher eine Fülle von Unterordnern sowie z.B. die Datei&lt;br /&gt;
&amp;quot;README_INSTALL.html&amp;quot; enthält z.B. nach C:.&lt;br /&gt;
&lt;br /&gt;
Im Ordner C:/ms4w liegt nun auch die Datei &amp;quot;apache-install.bat&amp;quot;. Klicken Sie doppelt auf diese und es folgt in einder DOS-Konsole die Meldung:&lt;br /&gt;
&lt;br /&gt;
Installing the Apache MS4W Web Server service&lt;br /&gt;
The Apache MS4W Web Server service is successfully installed.&lt;br /&gt;
Testing httpd.conf....&lt;br /&gt;
Errors reported here must be corrected before the service&lt;br /&gt;
can be started.&lt;br /&gt;
The Apache MS4W Web Server service is starting.&lt;br /&gt;
The Apache MS4W Web Server service was started successfully.&lt;br /&gt;
&lt;br /&gt;
Sicherheitshalber noch ein Doppelklick auf die Datei &amp;quot;setenv.bat&amp;quot; und das wars.......&lt;br /&gt;
&lt;br /&gt;
Geben Sie nun ein:&lt;br /&gt;
http://localhost/cgi-bin/mapserv.exe&lt;br /&gt;
&lt;br /&gt;
dann folgt die Meldung: No query information to decode. QUERY_STRING is set, but empty. &lt;br /&gt;
&lt;br /&gt;
Der MapServer ist betriebsbereit!&lt;br /&gt;
&lt;br /&gt;
===OSGeo4W===&lt;br /&gt;
&lt;br /&gt;
OSGeo4W ist ein Gesamtpaket für eine Win32-Umgebung (Vista, XP, etc.). Es enthält z.B. GRASS-GIS, uDig (auch ein GIS), QGIS, den MapServer und eine ganze Fülle weiterer Pakete.&lt;br /&gt;
Ein Download ist unter dieser URL möglich: http://trac.osgeo.org/osgeo4w/.&lt;br /&gt;
&lt;br /&gt;
Der erste Schritt für die Installation sieht so aus von http://trac.osgeo.org/osgeo4w/&lt;br /&gt;
den Installer herunterzuladen (osgeo4w-setup.exe).&lt;br /&gt;
Auf diesen dann ein Doppleklick, Express Install auwählen und anschließend die gewünschten Pakete &lt;br /&gt;
anklicken (nehmen wir einmal MapServer, den Apache und die Gdal-Bibliothek für Raster- und Vektordaten). Anschließend ein bißchen Geduld haben........&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
FGS &amp;amp; Co.&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Die Installation des Mapservers ist nicht trivial, da diese in Abhängigkeit vom verwendeten Betriebssystem und der Erfahrung des Benutzers immer eine Individuelle ist. &lt;br /&gt;
Die praktischen Tests ergaben folgendes Fazit: Die Reihenfolge, in der die einzelnen Pakete installiert werden, ist für die erfolgreiche Installation entscheidend. Tabelle 1 vermittelt einen Überblick über den in der Praxis evaluierten Installationsvorgang des Mapservers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| Reihenfolge&lt;br /&gt;
| Bibliothek&lt;br /&gt;
| Version&lt;br /&gt;
| Optional (j/n)&lt;br /&gt;
| Link&lt;br /&gt;
|-&lt;br /&gt;
| 1 zlib 1.2.3 n www.zlib.net&lt;br /&gt;
| 2 libpng 1.2.32 n www.libpng.org/pub/png&lt;br /&gt;
| 3 libJPEG 6 j www.ijg.org/files&lt;br /&gt;
| 4 Freetype 2.3.5 j www.freetype.org&lt;br /&gt;
| 5 GD 2.0.35 j www.libgd.org&lt;br /&gt;
| 6 Proj.4 4.5.0 j http://proj.maptools.org&lt;br /&gt;
| 7 GDAL 1.4.2 j www.gdal.org&lt;br /&gt;
| 8 shapelib 1.2.9 j http://shapelib.maptools.org&lt;br /&gt;
| 10. Mapserver 4.10.3 http://mapserver.gis.umn.edu&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
==== Installation der Bibliotheken ====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35157</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35157"/>
		<updated>2009-02-10T19:38:29Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* ms4w */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompilierte Binaries==&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Für Windows sind augenblicklich die folgenden Pakete erhältlich:&lt;br /&gt;
&lt;br /&gt;
ms4w&lt;br /&gt;
&lt;br /&gt;
osgeo4w&lt;br /&gt;
&lt;br /&gt;
==ms4w==&lt;br /&gt;
&lt;br /&gt;
Ms4W steht für &amp;quot;Microsoft for Windows&amp;quot; und kann unter dieser URL http://maptools.org/ms4w/ bezogen werden.&lt;br /&gt;
Das Ms4W-Paket enthält ein komplettes Webserver-Paket (inkl. PHP), den MapServer und auch verschiedene Mapscript-Variationen (PHP, C#, Python, Java). Auch Bibliotheken für den Oracle bzw. den ArcSDE-Support sind enthalten. Die Installation von Ms4W dauert nur wenige Minuten. Das Paket ist dann zu empfehlen wenn Sie sehr schnell zum Ziel kommen möchten und das Kompilieren eines &amp;quot;eigenen&amp;quot; MapServers umgehen wollen.&lt;br /&gt;
&lt;br /&gt;
Eine Installation ist über eine setup.exe-Datei bzw. über das Zip-Paket möglich.&lt;br /&gt;
Nehmen wir einmal das Zip-Paket.&lt;br /&gt;
Laden Sie dieses herunter (hier: ms4w_2.3.1.zip), entpacken Sie dieses und kopieren Sie den entpackten Ordner &amp;quot;ms4w&amp;quot; (und zwar den, welcher eine Fülle von Unterordnern sowie z.B. die Datei&lt;br /&gt;
&amp;quot;README_INSTALL.html&amp;quot; enthält z.B. nach C:.&lt;br /&gt;
&lt;br /&gt;
Im Ordner C:/ms4w liegt nun auch die Datei &amp;quot;apache-install.bat&amp;quot;. Klicken Sie doppelt auf diese und es folgt in einder DOS-Konsole die Meldung:&lt;br /&gt;
&lt;br /&gt;
Installing the Apache MS4W Web Server service&lt;br /&gt;
The Apache MS4W Web Server service is successfully installed.&lt;br /&gt;
Testing httpd.conf....&lt;br /&gt;
Errors reported here must be corrected before the service&lt;br /&gt;
can be started.&lt;br /&gt;
The Apache MS4W Web Server service is starting.&lt;br /&gt;
The Apache MS4W Web Server service was started successfully.&lt;br /&gt;
&lt;br /&gt;
Sicherheitshalber noch ein Doppelklick auf die Datei &amp;quot;setenv.bat&amp;quot; und das wars.......&lt;br /&gt;
&lt;br /&gt;
Geben Sie nun ein:&lt;br /&gt;
http://localhost/cgi-bin/mapserv.exe&lt;br /&gt;
&lt;br /&gt;
dann folgt die Meldung: No query information to decode. QUERY_STRING is set, but empty. &lt;br /&gt;
&lt;br /&gt;
Der MapServer ist betriebsbereit!&lt;br /&gt;
&lt;br /&gt;
===OSGeo4W===&lt;br /&gt;
&lt;br /&gt;
OSGeo4W ist ein Gesamtpaket für eine Win32-Umgebung (Vista, XP, etc.). Es enthält z.B. GRASS-GIS, uDig (auch ein GIS), QGIS, den MapServer und eine ganze Fülle weiterer Pakete.&lt;br /&gt;
Ein Download ist unter dieser URL möglich: http://trac.osgeo.org/osgeo4w/.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
FGS &amp;amp; Co.&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Die Installation des Mapservers ist nicht trivial, da diese in Abhängigkeit vom verwendeten Betriebssystem und der Erfahrung des Benutzers immer eine Individuelle ist. &lt;br /&gt;
Die praktischen Tests ergaben folgendes Fazit: Die Reihenfolge, in der die einzelnen Pakete installiert werden, ist für die erfolgreiche Installation entscheidend. Tabelle 1 vermittelt einen Überblick über den in der Praxis evaluierten Installationsvorgang des Mapservers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| Reihenfolge&lt;br /&gt;
| Bibliothek&lt;br /&gt;
| Version&lt;br /&gt;
| Optional (j/n)&lt;br /&gt;
| Link&lt;br /&gt;
|-&lt;br /&gt;
| 1 zlib 1.2.3 n www.zlib.net&lt;br /&gt;
| 2 libpng 1.2.32 n www.libpng.org/pub/png&lt;br /&gt;
| 3 libJPEG 6 j www.ijg.org/files&lt;br /&gt;
| 4 Freetype 2.3.5 j www.freetype.org&lt;br /&gt;
| 5 GD 2.0.35 j www.libgd.org&lt;br /&gt;
| 6 Proj.4 4.5.0 j http://proj.maptools.org&lt;br /&gt;
| 7 GDAL 1.4.2 j www.gdal.org&lt;br /&gt;
| 8 shapelib 1.2.9 j http://shapelib.maptools.org&lt;br /&gt;
| 10. Mapserver 4.10.3 http://mapserver.gis.umn.edu&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
==== Installation der Bibliotheken ====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35156</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35156"/>
		<updated>2009-02-10T19:27:46Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* ms4w */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompilierte Binaries==&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Für Windows sind augenblicklich die folgenden Pakete erhältlich:&lt;br /&gt;
&lt;br /&gt;
ms4w&lt;br /&gt;
&lt;br /&gt;
osgeo4w&lt;br /&gt;
&lt;br /&gt;
==ms4w==&lt;br /&gt;
&lt;br /&gt;
Ms4W steht für &amp;quot;Microsoft for Windows&amp;quot; und kann unter dieser URL http://maptools.org/ms4w/ bezogen werden.&lt;br /&gt;
Das Ms4W-Paket enthält ein komplettes Webserver-Paket (inkl. PHP), den MapServer und auch verschiedene Mapscript-Variationen (PHP, C#, Python, Java). Auch Bibliotheken für den Oracle bzw. den ArcSDE-Support sind enthalten. Die Installation von Ms4W dauert nur wenige Minuten. Das Paket ist dann zu empfehlen wenn Sie sehr schnell zum Ziel kommen möchten und das Kompilieren eines &amp;quot;eigenen&amp;quot; MapServers umgehen wollen.&lt;br /&gt;
&lt;br /&gt;
Eine Installation ist über eine setup.exe-Datei bzw. über das Zip-Paket möglich.&lt;br /&gt;
Nehmen wir einmal das Zip-Paket.&lt;br /&gt;
Laden Sie dieses herunter (hier: ms4w_2.3.1.zip), entpacken Sie dieses und kopieren Sie den entpackten Ordner &amp;quot;ms4w&amp;quot; (und zwar den, welcher eine Fülle von Unterordnern sowie z.B. die Datei&lt;br /&gt;
&amp;quot;README_INSTALL.html&amp;quot; enthält z.B. nach C:.&lt;br /&gt;
&lt;br /&gt;
Im Ordner C:/ms4w liegt nun auch die Datei &amp;quot;apache-install.bat&amp;quot;. Klicken Sie doppelt auf diese und es folgt in einder DOS-Konsole die Meldung:&lt;br /&gt;
&lt;br /&gt;
Installing the Apache MS4W Web Server service&lt;br /&gt;
The Apache MS4W Web Server service is successfully installed.&lt;br /&gt;
Testing httpd.conf....&lt;br /&gt;
Errors reported here must be corrected before the service&lt;br /&gt;
can be started.&lt;br /&gt;
The Apache MS4W Web Server service is starting.&lt;br /&gt;
The Apache MS4W Web Server service was started successfully.&lt;br /&gt;
&lt;br /&gt;
Sicherheitshalber noch ein Doppelklick auf die Datei &amp;quot;setenv.bat&amp;quot; und das wars.......&lt;br /&gt;
&lt;br /&gt;
Geben Sie nun ein:&lt;br /&gt;
http://localhost/cgi-bin/mapserv.exe&lt;br /&gt;
&lt;br /&gt;
dann folgt die Meldung: No query information to decode. QUERY_STRING is set, but empty. &lt;br /&gt;
&lt;br /&gt;
Der MapServer ist betriebsbereit!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
FGS &amp;amp; Co.&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Die Installation des Mapservers ist nicht trivial, da diese in Abhängigkeit vom verwendeten Betriebssystem und der Erfahrung des Benutzers immer eine Individuelle ist. &lt;br /&gt;
Die praktischen Tests ergaben folgendes Fazit: Die Reihenfolge, in der die einzelnen Pakete installiert werden, ist für die erfolgreiche Installation entscheidend. Tabelle 1 vermittelt einen Überblick über den in der Praxis evaluierten Installationsvorgang des Mapservers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| Reihenfolge&lt;br /&gt;
| Bibliothek&lt;br /&gt;
| Version&lt;br /&gt;
| Optional (j/n)&lt;br /&gt;
| Link&lt;br /&gt;
|-&lt;br /&gt;
| 1 zlib 1.2.3 n www.zlib.net&lt;br /&gt;
| 2 libpng 1.2.32 n www.libpng.org/pub/png&lt;br /&gt;
| 3 libJPEG 6 j www.ijg.org/files&lt;br /&gt;
| 4 Freetype 2.3.5 j www.freetype.org&lt;br /&gt;
| 5 GD 2.0.35 j www.libgd.org&lt;br /&gt;
| 6 Proj.4 4.5.0 j http://proj.maptools.org&lt;br /&gt;
| 7 GDAL 1.4.2 j www.gdal.org&lt;br /&gt;
| 8 shapelib 1.2.9 j http://shapelib.maptools.org&lt;br /&gt;
| 10. Mapserver 4.10.3 http://mapserver.gis.umn.edu&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
==== Installation der Bibliotheken ====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35155</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35155"/>
		<updated>2009-02-10T19:17:46Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* ms4w */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompilierte Binaries==&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Für Windows sind augenblicklich die folgenden Pakete erhältlich:&lt;br /&gt;
&lt;br /&gt;
ms4w&lt;br /&gt;
&lt;br /&gt;
osgeo4w&lt;br /&gt;
&lt;br /&gt;
==ms4w==&lt;br /&gt;
&lt;br /&gt;
Ms4W steht für &amp;quot;Microsoft for Windows&amp;quot; und kann unter dieser URL http://maptools.org/ms4w/ bezogen werden.&lt;br /&gt;
Das Ms4W-Paket enthält ein komplettes Webserver-Paket (inkl. PHP), den MapServer und auch verschiedene Mapscript-Variationen (PHP, C#, Python, Java). Auch Bibliotheken für den Oracle bzw. den ArcSDE-Support sind enthalten. Die Installation von Ms4W dauert nur wenige Minuten. Das Paket ist dann zu empfehlen wenn Sie sehr schnell zum Ziel kommen möchten und das Kompilieren eines &amp;quot;eigenen&amp;quot; MapServers umgehen wollen.&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
FGS &amp;amp; Co.&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Die Installation des Mapservers ist nicht trivial, da diese in Abhängigkeit vom verwendeten Betriebssystem und der Erfahrung des Benutzers immer eine Individuelle ist. &lt;br /&gt;
Die praktischen Tests ergaben folgendes Fazit: Die Reihenfolge, in der die einzelnen Pakete installiert werden, ist für die erfolgreiche Installation entscheidend. Tabelle 1 vermittelt einen Überblick über den in der Praxis evaluierten Installationsvorgang des Mapservers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| Reihenfolge&lt;br /&gt;
| Bibliothek&lt;br /&gt;
| Version&lt;br /&gt;
| Optional (j/n)&lt;br /&gt;
| Link&lt;br /&gt;
|-&lt;br /&gt;
| 1 zlib 1.2.3 n www.zlib.net&lt;br /&gt;
| 2 libpng 1.2.32 n www.libpng.org/pub/png&lt;br /&gt;
| 3 libJPEG 6 j www.ijg.org/files&lt;br /&gt;
| 4 Freetype 2.3.5 j www.freetype.org&lt;br /&gt;
| 5 GD 2.0.35 j www.libgd.org&lt;br /&gt;
| 6 Proj.4 4.5.0 j http://proj.maptools.org&lt;br /&gt;
| 7 GDAL 1.4.2 j www.gdal.org&lt;br /&gt;
| 8 shapelib 1.2.9 j http://shapelib.maptools.org&lt;br /&gt;
| 10. Mapserver 4.10.3 http://mapserver.gis.umn.edu&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
==== Installation der Bibliotheken ====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35154</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35154"/>
		<updated>2009-02-10T19:14:10Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompilierte Binaries==&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Für Windows sind augenblicklich die folgenden Pakete erhältlich:&lt;br /&gt;
&lt;br /&gt;
ms4w&lt;br /&gt;
&lt;br /&gt;
osgeo4w&lt;br /&gt;
&lt;br /&gt;
==ms4w==&lt;br /&gt;
&lt;br /&gt;
MS4W steht für &amp;quot;Microsoft for Windows&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
FGS &amp;amp; Co.&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Die Installation des Mapservers ist nicht trivial, da diese in Abhängigkeit vom verwendeten Betriebssystem und der Erfahrung des Benutzers immer eine Individuelle ist. &lt;br /&gt;
Die praktischen Tests ergaben folgendes Fazit: Die Reihenfolge, in der die einzelnen Pakete installiert werden, ist für die erfolgreiche Installation entscheidend. Tabelle 1 vermittelt einen Überblick über den in der Praxis evaluierten Installationsvorgang des Mapservers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| Reihenfolge&lt;br /&gt;
| Bibliothek&lt;br /&gt;
| Version&lt;br /&gt;
| Optional (j/n)&lt;br /&gt;
| Link&lt;br /&gt;
|-&lt;br /&gt;
| 1 zlib 1.2.3 n www.zlib.net&lt;br /&gt;
| 2 libpng 1.2.32 n www.libpng.org/pub/png&lt;br /&gt;
| 3 libJPEG 6 j www.ijg.org/files&lt;br /&gt;
| 4 Freetype 2.3.5 j www.freetype.org&lt;br /&gt;
| 5 GD 2.0.35 j www.libgd.org&lt;br /&gt;
| 6 Proj.4 4.5.0 j http://proj.maptools.org&lt;br /&gt;
| 7 GDAL 1.4.2 j www.gdal.org&lt;br /&gt;
| 8 shapelib 1.2.9 j http://shapelib.maptools.org&lt;br /&gt;
| 10. Mapserver 4.10.3 http://mapserver.gis.umn.edu&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
==== Installation der Bibliotheken ====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35153</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35153"/>
		<updated>2009-02-10T19:12:50Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompilierte Binaries==&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden Pakete&lt;br /&gt;
&lt;br /&gt;
ms4w&lt;br /&gt;
&lt;br /&gt;
osgeo4w&lt;br /&gt;
&lt;br /&gt;
==ms4w==&lt;br /&gt;
&lt;br /&gt;
MS4W steht für &amp;quot;Microsoft for Windows&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
FGS &amp;amp; Co.&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Die Installation des Mapservers ist nicht trivial, da diese in Abhängigkeit vom verwendeten Betriebssystem und der Erfahrung des Benutzers immer eine Individuelle ist. &lt;br /&gt;
Die praktischen Tests ergaben folgendes Fazit: Die Reihenfolge, in der die einzelnen Pakete installiert werden, ist für die erfolgreiche Installation entscheidend. Tabelle 1 vermittelt einen Überblick über den in der Praxis evaluierten Installationsvorgang des Mapservers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| Reihenfolge&lt;br /&gt;
| Bibliothek&lt;br /&gt;
| Version&lt;br /&gt;
| Optional (j/n)&lt;br /&gt;
| Link&lt;br /&gt;
|-&lt;br /&gt;
| 1 zlib 1.2.3 n www.zlib.net&lt;br /&gt;
| 2 libpng 1.2.32 n www.libpng.org/pub/png&lt;br /&gt;
| 3 libJPEG 6 j www.ijg.org/files&lt;br /&gt;
| 4 Freetype 2.3.5 j www.freetype.org&lt;br /&gt;
| 5 GD 2.0.35 j www.libgd.org&lt;br /&gt;
| 6 Proj.4 4.5.0 j http://proj.maptools.org&lt;br /&gt;
| 7 GDAL 1.4.2 j www.gdal.org&lt;br /&gt;
| 8 shapelib 1.2.9 j http://shapelib.maptools.org&lt;br /&gt;
| 10. Mapserver 4.10.3 http://mapserver.gis.umn.edu&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
==== Installation der Bibliotheken ====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35152</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35152"/>
		<updated>2009-02-10T19:11:54Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* MapScript */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompilierte Binaries==&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden Pakete&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ms4w&lt;br /&gt;
&lt;br /&gt;
osgeo4w&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
FGS &amp;amp; Co.&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Die Installation des Mapservers ist nicht trivial, da diese in Abhängigkeit vom verwendeten Betriebssystem und der Erfahrung des Benutzers immer eine Individuelle ist. &lt;br /&gt;
Die praktischen Tests ergaben folgendes Fazit: Die Reihenfolge, in der die einzelnen Pakete installiert werden, ist für die erfolgreiche Installation entscheidend. Tabelle 1 vermittelt einen Überblick über den in der Praxis evaluierten Installationsvorgang des Mapservers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| Reihenfolge&lt;br /&gt;
| Bibliothek&lt;br /&gt;
| Version&lt;br /&gt;
| Optional (j/n)&lt;br /&gt;
| Link&lt;br /&gt;
|-&lt;br /&gt;
| 1 zlib 1.2.3 n www.zlib.net&lt;br /&gt;
| 2 libpng 1.2.32 n www.libpng.org/pub/png&lt;br /&gt;
| 3 libJPEG 6 j www.ijg.org/files&lt;br /&gt;
| 4 Freetype 2.3.5 j www.freetype.org&lt;br /&gt;
| 5 GD 2.0.35 j www.libgd.org&lt;br /&gt;
| 6 Proj.4 4.5.0 j http://proj.maptools.org&lt;br /&gt;
| 7 GDAL 1.4.2 j www.gdal.org&lt;br /&gt;
| 8 shapelib 1.2.9 j http://shapelib.maptools.org&lt;br /&gt;
| 10. Mapserver 4.10.3 http://mapserver.gis.umn.edu&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
==== Installation der Bibliotheken ====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35151</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35151"/>
		<updated>2009-02-10T19:11:37Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Aus den Quellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompilierte Binaries==&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden Pakete&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ms4w&lt;br /&gt;
&lt;br /&gt;
osgeo4w&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
FGS &amp;amp; Co.&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Die Installation des Mapservers ist nicht trivial, da diese in Abhängigkeit vom verwendeten Betriebssystem und der Erfahrung des Benutzers immer eine Individuelle ist. &lt;br /&gt;
Die praktischen Tests ergaben folgendes Fazit: Die Reihenfolge, in der die einzelnen Pakete installiert werden, ist für die erfolgreiche Installation entscheidend. Tabelle 1 vermittelt einen Überblick über den in der Praxis evaluierten Installationsvorgang des Mapservers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| Reihenfolge&lt;br /&gt;
| Bibliothek&lt;br /&gt;
| Version&lt;br /&gt;
| Optional (j/n)&lt;br /&gt;
| Link&lt;br /&gt;
|-&lt;br /&gt;
| 1 zlib 1.2.3 n www.zlib.net&lt;br /&gt;
| 2 libpng 1.2.32 n www.libpng.org/pub/png&lt;br /&gt;
| 3 libJPEG 6 j www.ijg.org/files&lt;br /&gt;
| 4 Freetype 2.3.5 j www.freetype.org&lt;br /&gt;
| 5 GD 2.0.35 j www.libgd.org&lt;br /&gt;
| 6 Proj.4 4.5.0 j http://proj.maptools.org&lt;br /&gt;
| 7 GDAL 1.4.2 j www.gdal.org&lt;br /&gt;
| 8 shapelib 1.2.9 j http://shapelib.maptools.org&lt;br /&gt;
| 10. Mapserver 4.10.3 http://mapserver.gis.umn.edu&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
==== Installation der Bibliotheken ====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35150</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35150"/>
		<updated>2009-02-10T19:11:12Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Binaries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompilierte Binaries==&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden Pakete&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ms4w&lt;br /&gt;
&lt;br /&gt;
osgeo4w&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
FGS &amp;amp; Co.&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Die Installation des Mapservers ist nicht trivial, da diese in Abhängigkeit vom verwendeten Betriebssystem und der Erfahrung des Benutzers immer eine Individuelle ist. &lt;br /&gt;
Die praktischen Tests ergaben folgendes Fazit: Die Reihenfolge, in der die einzelnen Pakete installiert werden, ist für die erfolgreiche Installation entscheidend. Tabelle 1 vermittelt einen Überblick über den in der Praxis evaluierten Installationsvorgang des Mapservers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| Reihenfolge&lt;br /&gt;
| Bibliothek&lt;br /&gt;
| Version&lt;br /&gt;
| Optional (j/n)&lt;br /&gt;
| Link&lt;br /&gt;
|-&lt;br /&gt;
| 1 zlib 1.2.3 n www.zlib.net&lt;br /&gt;
| 2 libpng 1.2.32 n www.libpng.org/pub/png&lt;br /&gt;
| 3 libJPEG 6 j www.ijg.org/files&lt;br /&gt;
| 4 Freetype 2.3.5 j www.freetype.org&lt;br /&gt;
| 5 GD 2.0.35 j www.libgd.org&lt;br /&gt;
| 6 Proj.4 4.5.0 j http://proj.maptools.org&lt;br /&gt;
| 7 GDAL 1.4.2 j www.gdal.org&lt;br /&gt;
| 8 shapelib 1.2.9 j http://shapelib.maptools.org&lt;br /&gt;
| 10. Mapserver 4.10.3 http://mapserver.gis.umn.edu&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
==== Installation der Bibliotheken ====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35149</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=35149"/>
		<updated>2009-02-10T19:10:42Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Installation von Binaries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompilierte Binaries==&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden Pakete&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ms4w&lt;br /&gt;
&lt;br /&gt;
osgeo4w&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
FGS &amp;amp; Co.&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Die Installation des Mapservers ist nicht trivial, da diese in Abhängigkeit vom verwendeten Betriebssystem und der Erfahrung des Benutzers immer eine Individuelle ist. &lt;br /&gt;
Die praktischen Tests ergaben folgendes Fazit: Die Reihenfolge, in der die einzelnen Pakete installiert werden, ist für die erfolgreiche Installation entscheidend. Tabelle 1 vermittelt einen Überblick über den in der Praxis evaluierten Installationsvorgang des Mapservers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| Reihenfolge&lt;br /&gt;
| Bibliothek&lt;br /&gt;
| Version&lt;br /&gt;
| Optional (j/n)&lt;br /&gt;
| Link&lt;br /&gt;
|-&lt;br /&gt;
| 1 zlib 1.2.3 n www.zlib.net&lt;br /&gt;
| 2 libpng 1.2.32 n www.libpng.org/pub/png&lt;br /&gt;
| 3 libJPEG 6 j www.ijg.org/files&lt;br /&gt;
| 4 Freetype 2.3.5 j www.freetype.org&lt;br /&gt;
| 5 GD 2.0.35 j www.libgd.org&lt;br /&gt;
| 6 Proj.4 4.5.0 j http://proj.maptools.org&lt;br /&gt;
| 7 GDAL 1.4.2 j www.gdal.org&lt;br /&gt;
| 8 shapelib 1.2.9 j http://shapelib.maptools.org&lt;br /&gt;
| 10. Mapserver 4.10.3 http://mapserver.gis.umn.edu&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
==== Installation der Bibliotheken ====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User:Christian_Plass&amp;diff=34737</id>
		<title>User:Christian Plass</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User:Christian_Plass&amp;diff=34737"/>
		<updated>2009-01-28T19:35:09Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: New page: Christian Plass, Mail:cplass@uos.de&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Christian Plass, Mail:cplass@uos.de&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Komitee_f%C3%BCr_Bildung_und_Dokumentationserstellung&amp;diff=34736</id>
		<title>Komitee für Bildung und Dokumentationserstellung</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Komitee_f%C3%BCr_Bildung_und_Dokumentationserstellung&amp;diff=34736"/>
		<updated>2009-01-28T19:34:39Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Mitglieder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Komitee für Bildung und Dokumentationserstellung ==&lt;br /&gt;
&lt;br /&gt;
Die Aufgabe des Komitees für Bildung und Dokumentationserstellung ist es, die Nutzung der unter dem Dach der OSGeo entwickelten &lt;br /&gt;
Softwareprodukte durch Anleitungen und Tutorials zu unterstützen.&lt;br /&gt;
Diese Anleitungen sollen vorrangig im WIKI erstellt werden, um die Vorteile einer gemeinsamen Erstellung ausnutzen zu können.&lt;br /&gt;
Fühlen Sie sich frei sich als Mitglied in dieses Komitee einzutragen und eigene Anleitungen zu erstellen.&lt;br /&gt;
&lt;br /&gt;
== Mitglieder ==&lt;br /&gt;
* [[User:Kai Behncke | Kai Behncke]]&lt;br /&gt;
* [[User:Peter_panther | Florian Thürkow]]&lt;br /&gt;
* [[User:Simon Appelt | Simon Appelt]]&lt;br /&gt;
* [[User:jtmapmedia | Jörg Thomsen]]&lt;br /&gt;
* [[User:Markus Weißmann | Markus Weißmann]]&lt;br /&gt;
* [[User:Sven Boehme | Sven Boehme]]&lt;br /&gt;
* [[User:Matthias Heber | Matthias Heber]]&lt;br /&gt;
* [[User:Khoffmann | Karsten Hoffmann]]&lt;br /&gt;
* [[User:Astrid Emde | Astrid Emde]]&lt;br /&gt;
* [[User:mikee63 | Mike Elstermann]]&lt;br /&gt;
* [[User:Christian Plass | Christian Plass]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;float-right&amp;quot; style=&amp;quot;background-color:transparent;&amp;quot;&lt;br /&gt;
| [[Image:Autorentreffen_Linuxhotel091001.jpg]]&lt;br /&gt;
|-&lt;br /&gt;
| Treffen zum UMN MapServer Handbuch im Linuxhotel in Essen, Januar 2009&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kommunikation ==&lt;br /&gt;
=== mails ===&lt;br /&gt;
* mapserver-de@freegis.org&lt;br /&gt;
&lt;br /&gt;
=== IRC ===&lt;br /&gt;
* irc://irc.freenode.net/#fossgis&lt;br /&gt;
* [http://widget.mibbit.com/?settings=d6c564d91b45ad67d712a5d287c9a39e&amp;amp;server=irc.freenode.net&amp;amp;channel=%23fossgis Webchat]&lt;br /&gt;
* regelmässige Treffen: Donnerstags 17:30 Uhr&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
* Übernahme von Teilen aus dem englischen UMN Dokument&lt;br /&gt;
* FOSSGIS 2009: [http://www.fossgis.de/konferenz/wiki/Dienstag%2C_17._M%C3%A4rz_2009#Entwickler-_und_Anwendertreffen_ab_17:30_Uhr  Di 17.3.09 17:30 ]&lt;br /&gt;
* evtl. weiteres Treffen Linux-Tag&lt;br /&gt;
* Fertigstellung September 2009 &lt;br /&gt;
* evtl. Intergeo 2009 Bereitstellung des Buches&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anleitungen ==&lt;br /&gt;
* [[Anleitung für Routing (Pgrouting) und UMN MapServer mit den Freien Geodaten aus Osnabrück (Frida) | Anleitung für Routing (Pgrouting) und UMN MapServer mit den Freien Geodaten aus Osnabrück (Frida)]]&lt;br /&gt;
&lt;br /&gt;
* [[Neuerungen des UMN MapServers 5.0 | Neuerungen des UMN MapServers 5.0]]&lt;br /&gt;
&lt;br /&gt;
* [[Installation von MapServer, Apache und PostgreSQL/PostGIS auf Debian 4.0 | Installation von MapServer, Apache und PostgreSQL/PostGIS auf Debian 4.0]]&lt;br /&gt;
&lt;br /&gt;
* [[UMN-Mapserver_Performancetest | UMN-Mapserver Performancetest]]&lt;br /&gt;
&lt;br /&gt;
* [[Wxs mapscript]]&lt;br /&gt;
&lt;br /&gt;
* [[Konstruktion von Diagrammen mit dem UMN MapServer 5.0 | Konstruktion von Diagrammen mit dem UMN MapServer 5.0]]&lt;br /&gt;
&lt;br /&gt;
* [[Neuerungen des UMN MapServers 5.2 | Neuerungen des UMN MapServers 5.2]]&lt;br /&gt;
&lt;br /&gt;
Auf der FOSSGIS 2008 in Freiburg wurde beschlossen, dass im Rahmen von OSGeo Dach (Bildung) gemeinschaftlich das neue Handbuch für den UMN MapServer erstellt wird. Die Erstellung des Buches wird über ein WIKI laufen. Sofern Sie Interesse haben tragen Sie sich bitte in die Mailingliste [http://freegis.org/mailman/listinfo/mapserver-de mapserver-de] ein, und setzen Sie, wenn Sie möchten, oben auch einen namentlichen Link.&lt;br /&gt;
&lt;br /&gt;
Hier gehts zur Gliederung des Handbuches&lt;br /&gt;
[http://wiki.osgeo.org/wiki/HBUMNMapServer_ger http://wiki.osgeo.org/wiki/HBUMNMapServer_ger]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://download.osgeo.org/mapserver/docs/mapserver-users-manual.pdf mapserver user manual ]&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung der IRC treffen==&lt;br /&gt;
=== 2009-01-22===&lt;br /&gt;
Link zum gesamten Protokoll: http://logs.qgis.org/fossgis/%23fossgis.2009-01-22.log&lt;br /&gt;
&lt;br /&gt;
'''SVN der OSGEO'''&lt;br /&gt;
* wir nutzen das SVN für&lt;br /&gt;
** MapFiles&lt;br /&gt;
** Beispieldaten&lt;br /&gt;
** Grafiken (hochaufgelöste Raster und Vektor-Versionen für den Druck)&lt;br /&gt;
** LaTeX- und PDF-Druck-Versionen zu den gedruckten Ausgaben (Ergänzung, Jörg)&lt;br /&gt;
&lt;br /&gt;
'''Beispieldaten'''&lt;br /&gt;
* Es werden, wie in Essen besprochen, OSM-Daten von Hamburg für die Beispiele genommen&lt;br /&gt;
* Versuch Demo-Rasterdaten für Hamburg zu bekommen (über Kai/Simon/GiN)&lt;br /&gt;
&lt;br /&gt;
'''Finanzierung'''&lt;br /&gt;
* Beantragung der Unterstützung durch den FOSSGIS e. V.&lt;br /&gt;
* Versuch auch über den AK-WebGIS des GiN Zuschüsse zu bekommen.&lt;br /&gt;
Erläuterung für Außenstehende: Es geht hier nicht um die Bezahlung der Arbeitszeiten, nur die Erstattung oder Bezuschussung anfallender Kosten (z.B. Reisekosten) und einer Auslage der Druckkosten.&lt;br /&gt;
&lt;br /&gt;
'''Druck'''&lt;br /&gt;
&lt;br /&gt;
Angebote werden eingeholt, wenn es soweit ist, dass gedruckt werden kann. Eine Option ist die bisherige Druckerei (Schaltungsdienst Lange, Berlin), eine weitere Books on Demand: http://www.bod.de.&lt;br /&gt;
&lt;br /&gt;
'''Grafiker'''&lt;br /&gt;
&lt;br /&gt;
gefunden! &lt;br /&gt;
Chrsitian aus Osnabrück&lt;br /&gt;
&lt;br /&gt;
'''Nächster offizieller IRC'''&lt;br /&gt;
&lt;br /&gt;
Der bisherige Termin, Do 17:30, passt leider nicht mehr allen, ein Neuer muss gefunden werden: http://www.doodle.com/sprra5ehbuvex32d&lt;br /&gt;
&lt;br /&gt;
[[Category: Education]]&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34487</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34487"/>
		<updated>2009-01-23T11:30:27Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Vorkompiliert */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompilierte Binaries==&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden Pakete&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ms4w&lt;br /&gt;
&lt;br /&gt;
osgeo4w&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
FGS &amp;amp; Co.&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
==== Installation der Bibliotheken ====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34466</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34466"/>
		<updated>2009-01-23T11:26:36Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Die MapMedia MapServer Suite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden Pakete&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ms4w&lt;br /&gt;
&lt;br /&gt;
osgeo4w&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
FGS &amp;amp; Co.&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
==== Installation der Bibliotheken ====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34451</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34451"/>
		<updated>2009-01-23T11:20:36Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Vorkompiliert */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden Pakete&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ms4w&lt;br /&gt;
&lt;br /&gt;
osgeo4w&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
FGS &amp;amp; Co.&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
==== Installation der Bibliotheken ====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34450</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34450"/>
		<updated>2009-01-23T11:19:33Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Installation der Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden Pakete&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ms4w&lt;br /&gt;
&lt;br /&gt;
osgeo4w&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
==== Installation der Bibliotheken ====&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34449</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34449"/>
		<updated>2009-01-23T11:18:25Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Vorkompiliert */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden Pakete&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ms4w&lt;br /&gt;
&lt;br /&gt;
osgeo4w&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34448</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34448"/>
		<updated>2009-01-23T11:15:42Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Die MapMedia MapServer Suite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
fehlt noch&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34447</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34447"/>
		<updated>2009-01-23T11:09:39Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Quelltexte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
fehlt noch&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
Sie sollten aber mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34446</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34446"/>
		<updated>2009-01-23T11:07:46Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
fehlt noch&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
Eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. &lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34445</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34445"/>
		<updated>2009-01-23T11:05:52Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
fehlt noch&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek ist unbedingt zu empfehlen.&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34444</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34444"/>
		<updated>2009-01-23T11:04:01Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
fehlt noch&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34443</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34443"/>
		<updated>2009-01-23T11:01:28Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Bezug */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
fehlt noch&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34442</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34442"/>
		<updated>2009-01-23T10:44:22Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* UMN MapServer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
''Hinweis für Windows-Benutzer'' : Sollten Sie MapServer unter aktuellen Windows-Versionen wie 2003 unter IIS 6.0 laufen lassen wollen\footnote{Von IIS ist allerdings aus Sicherheitsgründen dringend abzuraten.}, beachten Sie bitte, dass die Software über ein neues Sicherheitsmodell verfügt und in der Standardeinstellung keine dynamisch generierten Inhalte ausliefert. Genaueres erfahren Sie auf der Microsoft-Website.&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''/win32bin/ms40_gif_pg.zip''  Ein fertiges Binary, dass ''.gif'' -Bilder produziert, gegen die GDAL gelinkt ist, auf PostGIS zugreifen kann und sowohl als WMS-konformer Client als auch Server dienen kann. Desweiteren kann dieses Binary PDF und Flash erzeugen, umprojizieren und mit TrueType-Schriften umgehen.  &lt;br /&gt;
*''/win32bin/ms40_png_pg.zip''  Genau das gleiche, allerdings mit PNG statt GIF.  &lt;br /&gt;
&lt;br /&gt;
Beide Archive sind rund 10 Megabytes groß.&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch zwei Pakete, die mit den beiden genannten identisch sind, allerdings die PostGIS-Unterstützung durch Unterstützung für Oracle Spatial-Datenbanken ersetzen. Die Oracle-Bibliotheken werden nicht mitgeliefert und müssen demnach bereits auf dem Zielsystem vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Umständen finden sich im Internet für diverse Systeme Binaries mit einkompilierten Spezialitäten. Mit ein wenig Suche sollten Sie beispielsweise auch im Archiv der Mailingliste entsprechende Verweise auftun können.&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Linux-Distributionen auf Intel-Systeme gibt es ein Paket, das von der Firma intevation geschnürt wird. Sie finden es unter~[[ftp:intevation:rpm]].&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles kompiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version.&lt;br /&gt;
&lt;br /&gt;
 MapServer version 5.2.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER &lt;br /&gt;
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
 INPUT=SHAPEFILE&lt;br /&gt;
&lt;br /&gt;
 Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
 No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&lt;br /&gt;
kommt ist alles wunderbar. Der MapServer ist einsatzbereit.&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34441</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34441"/>
		<updated>2009-01-23T10:42:30Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* UMN MapServer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
''Hinweis für Windows-Benutzer'' : Sollten Sie MapServer unter aktuellen Windows-Versionen wie 2003 unter IIS 6.0 laufen lassen wollen\footnote{Von IIS ist allerdings aus Sicherheitsgründen dringend abzuraten.}, beachten Sie bitte, dass die Software über ein neues Sicherheitsmodell verfügt und in der Standardeinstellung keine dynamisch generierten Inhalte ausliefert. Genaueres erfahren Sie auf der Microsoft-Website.&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''/win32bin/ms40_gif_pg.zip''  Ein fertiges Binary, dass ''.gif'' -Bilder produziert, gegen die GDAL gelinkt ist, auf PostGIS zugreifen kann und sowohl als WMS-konformer Client als auch Server dienen kann. Desweiteren kann dieses Binary PDF und Flash erzeugen, umprojizieren und mit TrueType-Schriften umgehen.  &lt;br /&gt;
*''/win32bin/ms40_png_pg.zip''  Genau das gleiche, allerdings mit PNG statt GIF.  &lt;br /&gt;
&lt;br /&gt;
Beide Archive sind rund 10 Megabytes groß.&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch zwei Pakete, die mit den beiden genannten identisch sind, allerdings die PostGIS-Unterstützung durch Unterstützung für Oracle Spatial-Datenbanken ersetzen. Die Oracle-Bibliotheken werden nicht mitgeliefert und müssen demnach bereits auf dem Zielsystem vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Umständen finden sich im Internet für diverse Systeme Binaries mit einkompilierten Spezialitäten. Mit ein wenig Suche sollten Sie beispielsweise auch im Archiv der Mailingliste entsprechende Verweise auftun können.&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Linux-Distributionen auf Intel-Systeme gibt es ein Paket, das von der Firma intevation geschnürt wird. Sie finden es unter~[[ftp:intevation:rpm]].&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype &lt;br /&gt;
 --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads &lt;br /&gt;
 --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles komipiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version. Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin&lt;br /&gt;
und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34440</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34440"/>
		<updated>2009-01-23T10:42:05Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* UMN MapServer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
''Hinweis für Windows-Benutzer'' : Sollten Sie MapServer unter aktuellen Windows-Versionen wie 2003 unter IIS 6.0 laufen lassen wollen\footnote{Von IIS ist allerdings aus Sicherheitsgründen dringend abzuraten.}, beachten Sie bitte, dass die Software über ein neues Sicherheitsmodell verfügt und in der Standardeinstellung keine dynamisch generierten Inhalte ausliefert. Genaueres erfahren Sie auf der Microsoft-Website.&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''/win32bin/ms40_gif_pg.zip''  Ein fertiges Binary, dass ''.gif'' -Bilder produziert, gegen die GDAL gelinkt ist, auf PostGIS zugreifen kann und sowohl als WMS-konformer Client als auch Server dienen kann. Desweiteren kann dieses Binary PDF und Flash erzeugen, umprojizieren und mit TrueType-Schriften umgehen.  &lt;br /&gt;
*''/win32bin/ms40_png_pg.zip''  Genau das gleiche, allerdings mit PNG statt GIF.  &lt;br /&gt;
&lt;br /&gt;
Beide Archive sind rund 10 Megabytes groß.&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch zwei Pakete, die mit den beiden genannten identisch sind, allerdings die PostGIS-Unterstützung durch Unterstützung für Oracle Spatial-Datenbanken ersetzen. Die Oracle-Bibliotheken werden nicht mitgeliefert und müssen demnach bereits auf dem Zielsystem vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Umständen finden sich im Internet für diverse Systeme Binaries mit einkompilierten Spezialitäten. Mit ein wenig Suche sollten Sie beispielsweise auch im Archiv der Mailingliste entsprechende Verweise auftun können.&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Linux-Distributionen auf Intel-Systeme gibt es ein Paket, das von der Firma intevation geschnürt wird. Sie finden es unter~[[ftp:intevation:rpm]].&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
 /usr/local/pgsql/lib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles komipiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version. Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin&lt;br /&gt;
und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34438</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34438"/>
		<updated>2009-01-23T10:37:12Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* UMN MapServer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
''Hinweis für Windows-Benutzer'' : Sollten Sie MapServer unter aktuellen Windows-Versionen wie 2003 unter IIS 6.0 laufen lassen wollen\footnote{Von IIS ist allerdings aus Sicherheitsgründen dringend abzuraten.}, beachten Sie bitte, dass die Software über ein neues Sicherheitsmodell verfügt und in der Standardeinstellung keine dynamisch generierten Inhalte ausliefert. Genaueres erfahren Sie auf der Microsoft-Website.&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''/win32bin/ms40_gif_pg.zip''  Ein fertiges Binary, dass ''.gif'' -Bilder produziert, gegen die GDAL gelinkt ist, auf PostGIS zugreifen kann und sowohl als WMS-konformer Client als auch Server dienen kann. Desweiteren kann dieses Binary PDF und Flash erzeugen, umprojizieren und mit TrueType-Schriften umgehen.  &lt;br /&gt;
*''/win32bin/ms40_png_pg.zip''  Genau das gleiche, allerdings mit PNG statt GIF.  &lt;br /&gt;
&lt;br /&gt;
Beide Archive sind rund 10 Megabytes groß.&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch zwei Pakete, die mit den beiden genannten identisch sind, allerdings die PostGIS-Unterstützung durch Unterstützung für Oracle Spatial-Datenbanken ersetzen. Die Oracle-Bibliotheken werden nicht mitgeliefert und müssen demnach bereits auf dem Zielsystem vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Umständen finden sich im Internet für diverse Systeme Binaries mit einkompilierten Spezialitäten. Mit ein wenig Suche sollten Sie beispielsweise auch im Archiv der Mailingliste entsprechende Verweise auftun können.&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Linux-Distributionen auf Intel-Systeme gibt es ein Paket, das von der Firma intevation geschnürt wird. Sie finden es unter~[[ftp:intevation:rpm]].&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers (http://www.mapserver.org) editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie, sofern noch nicht getan, bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach Distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten MapServers und geben z.B. ein:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype --with-proj --with-geos --with-libiconv --with-agg=/opt/install/zip/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads --with-php=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles komipiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version. Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin&lt;br /&gt;
und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34437</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34437"/>
		<updated>2009-01-23T10:24:41Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* PHP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
''Hinweis für Windows-Benutzer'' : Sollten Sie MapServer unter aktuellen Windows-Versionen wie 2003 unter IIS 6.0 laufen lassen wollen\footnote{Von IIS ist allerdings aus Sicherheitsgründen dringend abzuraten.}, beachten Sie bitte, dass die Software über ein neues Sicherheitsmodell verfügt und in der Standardeinstellung keine dynamisch generierten Inhalte ausliefert. Genaueres erfahren Sie auf der Microsoft-Website.&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''/win32bin/ms40_gif_pg.zip''  Ein fertiges Binary, dass ''.gif'' -Bilder produziert, gegen die GDAL gelinkt ist, auf PostGIS zugreifen kann und sowohl als WMS-konformer Client als auch Server dienen kann. Desweiteren kann dieses Binary PDF und Flash erzeugen, umprojizieren und mit TrueType-Schriften umgehen.  &lt;br /&gt;
*''/win32bin/ms40_png_pg.zip''  Genau das gleiche, allerdings mit PNG statt GIF.  &lt;br /&gt;
&lt;br /&gt;
Beide Archive sind rund 10 Megabytes groß.&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch zwei Pakete, die mit den beiden genannten identisch sind, allerdings die PostGIS-Unterstützung durch Unterstützung für Oracle Spatial-Datenbanken ersetzen. Die Oracle-Bibliotheken werden nicht mitgeliefert und müssen demnach bereits auf dem Zielsystem vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Umständen finden sich im Internet für diverse Systeme Binaries mit einkompilierten Spezialitäten. Mit ein wenig Suche sollten Sie beispielsweise auch im Archiv der Mailingliste entsprechende Verweise auftun können.&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Linux-Distributionen auf Intel-Systeme gibt es ein Paket, das von der Firma intevation geschnürt wird. Sie finden es unter~[[ftp:intevation:rpm]].&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
Anschließend ein&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
sowie ein &lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Dann:&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.8/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so (sofern dieses bei der Installation von php nicht automatisch eingetragen wurde)&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/local/bin&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten  MapServers&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg&lt;br /&gt;
 --with-png --with-freetype --with-proj --with-geos -with-libiconv=/usr --with-agg=/var/src/agg-2.5 --with-postgis=/usr/bin/pg_config&lt;br /&gt;
 --with-threads --with-php=/usr/include/php5&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles komipiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version. Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin&lt;br /&gt;
und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34432</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34432"/>
		<updated>2009-01-23T10:17:00Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Installation der Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
''Hinweis für Windows-Benutzer'' : Sollten Sie MapServer unter aktuellen Windows-Versionen wie 2003 unter IIS 6.0 laufen lassen wollen\footnote{Von IIS ist allerdings aus Sicherheitsgründen dringend abzuraten.}, beachten Sie bitte, dass die Software über ein neues Sicherheitsmodell verfügt und in der Standardeinstellung keine dynamisch generierten Inhalte ausliefert. Genaueres erfahren Sie auf der Microsoft-Website.&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''/win32bin/ms40_gif_pg.zip''  Ein fertiges Binary, dass ''.gif'' -Bilder produziert, gegen die GDAL gelinkt ist, auf PostGIS zugreifen kann und sowohl als WMS-konformer Client als auch Server dienen kann. Desweiteren kann dieses Binary PDF und Flash erzeugen, umprojizieren und mit TrueType-Schriften umgehen.  &lt;br /&gt;
*''/win32bin/ms40_png_pg.zip''  Genau das gleiche, allerdings mit PNG statt GIF.  &lt;br /&gt;
&lt;br /&gt;
Beide Archive sind rund 10 Megabytes groß.&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch zwei Pakete, die mit den beiden genannten identisch sind, allerdings die PostGIS-Unterstützung durch Unterstützung für Oracle Spatial-Datenbanken ersetzen. Die Oracle-Bibliotheken werden nicht mitgeliefert und müssen demnach bereits auf dem Zielsystem vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Umständen finden sich im Internet für diverse Systeme Binaries mit einkompilierten Spezialitäten. Mit ein wenig Suche sollten Sie beispielsweise auch im Archiv der Mailingliste entsprechende Verweise auftun können.&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Linux-Distributionen auf Intel-Systeme gibt es ein Paket, das von der Firma intevation geschnürt wird. Sie finden es unter~[[ftp:intevation:rpm]].&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie die Bibliotheken installieren wollen wechseln Sie bitte in das VErzeichnis der jeweilig entpackten Bibliothek.&lt;br /&gt;
Dort führen Sie zunächst den Befehl&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
aus. Dieser bewirkt zunächst eine Konfiguration der entsprechenden Bibliothek. Nach Abschluss der Konfiguration wird ein&lt;br /&gt;
sogenanntes Makefile  erzeugt. Dieses beinhaltet die notwendigen Informationen um den Quellcode zu kompilieren.&lt;br /&gt;
Führen Sie danach den Befehl &lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
und anschließend &lt;br /&gt;
 &lt;br /&gt;
 make install &lt;br /&gt;
&lt;br /&gt;
aus und die Biliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.3/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/local/bin&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten  MapServers&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg&lt;br /&gt;
 --with-png --with-freetype --with-proj --with-geos -with-libiconv=/usr --with-agg=/var/src/agg-2.5 --with-postgis=/usr/bin/pg_config&lt;br /&gt;
 --with-threads --with-php=/usr/include/php5&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles komipiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version. Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin&lt;br /&gt;
und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34426</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34426"/>
		<updated>2009-01-23T09:59:47Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
''Hinweis für Windows-Benutzer'' : Sollten Sie MapServer unter aktuellen Windows-Versionen wie 2003 unter IIS 6.0 laufen lassen wollen\footnote{Von IIS ist allerdings aus Sicherheitsgründen dringend abzuraten.}, beachten Sie bitte, dass die Software über ein neues Sicherheitsmodell verfügt und in der Standardeinstellung keine dynamisch generierten Inhalte ausliefert. Genaueres erfahren Sie auf der Microsoft-Website.&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''/win32bin/ms40_gif_pg.zip''  Ein fertiges Binary, dass ''.gif'' -Bilder produziert, gegen die GDAL gelinkt ist, auf PostGIS zugreifen kann und sowohl als WMS-konformer Client als auch Server dienen kann. Desweiteren kann dieses Binary PDF und Flash erzeugen, umprojizieren und mit TrueType-Schriften umgehen.  &lt;br /&gt;
*''/win32bin/ms40_png_pg.zip''  Genau das gleiche, allerdings mit PNG statt GIF.  &lt;br /&gt;
&lt;br /&gt;
Beide Archive sind rund 10 Megabytes groß.&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch zwei Pakete, die mit den beiden genannten identisch sind, allerdings die PostGIS-Unterstützung durch Unterstützung für Oracle Spatial-Datenbanken ersetzen. Die Oracle-Bibliotheken werden nicht mitgeliefert und müssen demnach bereits auf dem Zielsystem vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Umständen finden sich im Internet für diverse Systeme Binaries mit einkompilierten Spezialitäten. Mit ein wenig Suche sollten Sie beispielsweise auch im Archiv der Mailingliste entsprechende Verweise auftun können.&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Linux-Distributionen auf Intel-Systeme gibt es ein Paket, das von der Firma intevation geschnürt wird. Sie finden es unter~[[ftp:intevation:rpm]].&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35) (PostGIS benötigt diese Bibliothek)&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.3/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/local/bin&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten  MapServers&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg&lt;br /&gt;
 --with-png --with-freetype --with-proj --with-geos -with-libiconv=/usr --with-agg=/var/src/agg-2.5 --with-postgis=/usr/bin/pg_config&lt;br /&gt;
 --with-threads --with-php=/usr/include/php5&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles komipiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version. Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin&lt;br /&gt;
und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34425</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34425"/>
		<updated>2009-01-23T09:58:53Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* PostgreSQL/PostGIS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
''Hinweis für Windows-Benutzer'' : Sollten Sie MapServer unter aktuellen Windows-Versionen wie 2003 unter IIS 6.0 laufen lassen wollen\footnote{Von IIS ist allerdings aus Sicherheitsgründen dringend abzuraten.}, beachten Sie bitte, dass die Software über ein neues Sicherheitsmodell verfügt und in der Standardeinstellung keine dynamisch generierten Inhalte ausliefert. Genaueres erfahren Sie auf der Microsoft-Website.&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''/win32bin/ms40_gif_pg.zip''  Ein fertiges Binary, dass ''.gif'' -Bilder produziert, gegen die GDAL gelinkt ist, auf PostGIS zugreifen kann und sowohl als WMS-konformer Client als auch Server dienen kann. Desweiteren kann dieses Binary PDF und Flash erzeugen, umprojizieren und mit TrueType-Schriften umgehen.  &lt;br /&gt;
*''/win32bin/ms40_png_pg.zip''  Genau das gleiche, allerdings mit PNG statt GIF.  &lt;br /&gt;
&lt;br /&gt;
Beide Archive sind rund 10 Megabytes groß.&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch zwei Pakete, die mit den beiden genannten identisch sind, allerdings die PostGIS-Unterstützung durch Unterstützung für Oracle Spatial-Datenbanken ersetzen. Die Oracle-Bibliotheken werden nicht mitgeliefert und müssen demnach bereits auf dem Zielsystem vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Umständen finden sich im Internet für diverse Systeme Binaries mit einkompilierten Spezialitäten. Mit ein wenig Suche sollten Sie beispielsweise auch im Archiv der Mailingliste entsprechende Verweise auftun können.&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Linux-Distributionen auf Intel-Systeme gibt es ein Paket, das von der Firma intevation geschnürt wird. Sie finden es unter~[[ftp:intevation:rpm]].&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35).&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
PostgreSQL können Sie von http://www.postgresql.org/download herunterladen (aktuell war 8.3.5).&lt;br /&gt;
PostGIS erhalten Sie auf http://postgis.refractions.net/ (1.3.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/zip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
 cp -R postgis /opt/install/zip/postgresql-8.3.5/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Ordner führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.3/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/local/bin&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten  MapServers&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg&lt;br /&gt;
 --with-png --with-freetype --with-proj --with-geos -with-libiconv=/usr --with-agg=/var/src/agg-2.5 --with-postgis=/usr/bin/pg_config&lt;br /&gt;
 --with-threads --with-php=/usr/include/php5&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles komipiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version. Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin&lt;br /&gt;
und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34338</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34338"/>
		<updated>2009-01-22T09:50:28Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* PHP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
''Hinweis für Windows-Benutzer'' : Sollten Sie MapServer unter aktuellen Windows-Versionen wie 2003 unter IIS 6.0 laufen lassen wollen\footnote{Von IIS ist allerdings aus Sicherheitsgründen dringend abzuraten.}, beachten Sie bitte, dass die Software über ein neues Sicherheitsmodell verfügt und in der Standardeinstellung keine dynamisch generierten Inhalte ausliefert. Genaueres erfahren Sie auf der Microsoft-Website.&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''/win32bin/ms40_gif_pg.zip''  Ein fertiges Binary, dass ''.gif'' -Bilder produziert, gegen die GDAL gelinkt ist, auf PostGIS zugreifen kann und sowohl als WMS-konformer Client als auch Server dienen kann. Desweiteren kann dieses Binary PDF und Flash erzeugen, umprojizieren und mit TrueType-Schriften umgehen.  &lt;br /&gt;
*''/win32bin/ms40_png_pg.zip''  Genau das gleiche, allerdings mit PNG statt GIF.  &lt;br /&gt;
&lt;br /&gt;
Beide Archive sind rund 10 Megabytes groß.&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch zwei Pakete, die mit den beiden genannten identisch sind, allerdings die PostGIS-Unterstützung durch Unterstützung für Oracle Spatial-Datenbanken ersetzen. Die Oracle-Bibliotheken werden nicht mitgeliefert und müssen demnach bereits auf dem Zielsystem vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Umständen finden sich im Internet für diverse Systeme Binaries mit einkompilierten Spezialitäten. Mit ein wenig Suche sollten Sie beispielsweise auch im Archiv der Mailingliste entsprechende Verweise auftun können.&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Linux-Distributionen auf Intel-Systeme gibt es ein Paket, das von der Firma intevation geschnürt wird. Sie finden es unter~[[ftp:intevation:rpm]].&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35).&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/unzip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
Dort führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.3/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/local/bin&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten  MapServers&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg&lt;br /&gt;
 --with-png --with-freetype --with-proj --with-geos -with-libiconv=/usr --with-agg=/var/src/agg-2.5 --with-postgis=/usr/bin/pg_config&lt;br /&gt;
 --with-threads --with-php=/usr/include/php5&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles komipiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version. Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin&lt;br /&gt;
und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34337</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34337"/>
		<updated>2009-01-22T09:49:59Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Apache Webserver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
''Hinweis für Windows-Benutzer'' : Sollten Sie MapServer unter aktuellen Windows-Versionen wie 2003 unter IIS 6.0 laufen lassen wollen\footnote{Von IIS ist allerdings aus Sicherheitsgründen dringend abzuraten.}, beachten Sie bitte, dass die Software über ein neues Sicherheitsmodell verfügt und in der Standardeinstellung keine dynamisch generierten Inhalte ausliefert. Genaueres erfahren Sie auf der Microsoft-Website.&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''/win32bin/ms40_gif_pg.zip''  Ein fertiges Binary, dass ''.gif'' -Bilder produziert, gegen die GDAL gelinkt ist, auf PostGIS zugreifen kann und sowohl als WMS-konformer Client als auch Server dienen kann. Desweiteren kann dieses Binary PDF und Flash erzeugen, umprojizieren und mit TrueType-Schriften umgehen.  &lt;br /&gt;
*''/win32bin/ms40_png_pg.zip''  Genau das gleiche, allerdings mit PNG statt GIF.  &lt;br /&gt;
&lt;br /&gt;
Beide Archive sind rund 10 Megabytes groß.&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch zwei Pakete, die mit den beiden genannten identisch sind, allerdings die PostGIS-Unterstützung durch Unterstützung für Oracle Spatial-Datenbanken ersetzen. Die Oracle-Bibliotheken werden nicht mitgeliefert und müssen demnach bereits auf dem Zielsystem vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Umständen finden sich im Internet für diverse Systeme Binaries mit einkompilierten Spezialitäten. Mit ein wenig Suche sollten Sie beispielsweise auch im Archiv der Mailingliste entsprechende Verweise auftun können.&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Linux-Distributionen auf Intel-Systeme gibt es ein Paket, das von der Firma intevation geschnürt wird. Sie finden es unter~[[ftp:intevation:rpm]].&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35).&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/unzip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
Dort führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.3/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/local/bin&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten  MapServers&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg&lt;br /&gt;
 --with-png --with-freetype --with-proj --with-geos -with-libiconv=/usr --with-agg=/var/src/agg-2.5 --with-postgis=/usr/bin/pg_config&lt;br /&gt;
 --with-threads --with-php=/usr/include/php5&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles komipiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version. Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin&lt;br /&gt;
und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34336</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34336"/>
		<updated>2009-01-22T09:12:44Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Apache Webserver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
''Hinweis für Windows-Benutzer'' : Sollten Sie MapServer unter aktuellen Windows-Versionen wie 2003 unter IIS 6.0 laufen lassen wollen\footnote{Von IIS ist allerdings aus Sicherheitsgründen dringend abzuraten.}, beachten Sie bitte, dass die Software über ein neues Sicherheitsmodell verfügt und in der Standardeinstellung keine dynamisch generierten Inhalte ausliefert. Genaueres erfahren Sie auf der Microsoft-Website.&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''/win32bin/ms40_gif_pg.zip''  Ein fertiges Binary, dass ''.gif'' -Bilder produziert, gegen die GDAL gelinkt ist, auf PostGIS zugreifen kann und sowohl als WMS-konformer Client als auch Server dienen kann. Desweiteren kann dieses Binary PDF und Flash erzeugen, umprojizieren und mit TrueType-Schriften umgehen.  &lt;br /&gt;
*''/win32bin/ms40_png_pg.zip''  Genau das gleiche, allerdings mit PNG statt GIF.  &lt;br /&gt;
&lt;br /&gt;
Beide Archive sind rund 10 Megabytes groß.&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch zwei Pakete, die mit den beiden genannten identisch sind, allerdings die PostGIS-Unterstützung durch Unterstützung für Oracle Spatial-Datenbanken ersetzen. Die Oracle-Bibliotheken werden nicht mitgeliefert und müssen demnach bereits auf dem Zielsystem vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Umständen finden sich im Internet für diverse Systeme Binaries mit einkompilierten Spezialitäten. Mit ein wenig Suche sollten Sie beispielsweise auch im Archiv der Mailingliste entsprechende Verweise auftun können.&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Linux-Distributionen auf Intel-Systeme gibt es ein Paket, das von der Firma intevation geschnürt wird. Sie finden es unter~[[ftp:intevation:rpm]].&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35).&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/conf/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
z.B.&lt;br /&gt;
&lt;br /&gt;
 User daemon&lt;br /&gt;
 Group daemon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
Sollte dann evtl eine Fehlermeldung kommen der Art von:&lt;br /&gt;
&lt;br /&gt;
  error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
so werden Bibliotheken nicht gefunden. &lt;br /&gt;
Ändern Sie dann die Datei /etc/ld.co.conf und sorgen Sie dafür dass dort z.B. folgendes steht:&lt;br /&gt;
&lt;br /&gt;
 /lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib/i486-linux-gnu&lt;br /&gt;
 /usr/lib&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie auf Kommandozeile den Befehl &lt;br /&gt;
 &lt;br /&gt;
 ldconfig&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/unzip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
Dort führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.3/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/local/bin&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten  MapServers&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg&lt;br /&gt;
 --with-png --with-freetype --with-proj --with-geos -with-libiconv=/usr --with-agg=/var/src/agg-2.5 --with-postgis=/usr/bin/pg_config&lt;br /&gt;
 --with-threads --with-php=/usr/include/php5&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles komipiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version. Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin&lt;br /&gt;
und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34335</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34335"/>
		<updated>2009-01-22T08:53:29Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Installation der Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
''Hinweis für Windows-Benutzer'' : Sollten Sie MapServer unter aktuellen Windows-Versionen wie 2003 unter IIS 6.0 laufen lassen wollen\footnote{Von IIS ist allerdings aus Sicherheitsgründen dringend abzuraten.}, beachten Sie bitte, dass die Software über ein neues Sicherheitsmodell verfügt und in der Standardeinstellung keine dynamisch generierten Inhalte ausliefert. Genaueres erfahren Sie auf der Microsoft-Website.&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''/win32bin/ms40_gif_pg.zip''  Ein fertiges Binary, dass ''.gif'' -Bilder produziert, gegen die GDAL gelinkt ist, auf PostGIS zugreifen kann und sowohl als WMS-konformer Client als auch Server dienen kann. Desweiteren kann dieses Binary PDF und Flash erzeugen, umprojizieren und mit TrueType-Schriften umgehen.  &lt;br /&gt;
*''/win32bin/ms40_png_pg.zip''  Genau das gleiche, allerdings mit PNG statt GIF.  &lt;br /&gt;
&lt;br /&gt;
Beide Archive sind rund 10 Megabytes groß.&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch zwei Pakete, die mit den beiden genannten identisch sind, allerdings die PostGIS-Unterstützung durch Unterstützung für Oracle Spatial-Datenbanken ersetzen. Die Oracle-Bibliotheken werden nicht mitgeliefert und müssen demnach bereits auf dem Zielsystem vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Umständen finden sich im Internet für diverse Systeme Binaries mit einkompilierten Spezialitäten. Mit ein wenig Suche sollten Sie beispielsweise auch im Archiv der Mailingliste entsprechende Verweise auftun können.&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Linux-Distributionen auf Intel-Systeme gibt es ein Paket, das von der Firma intevation geschnürt wird. Sie finden es unter~[[ftp:intevation:rpm]].&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35).&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken wie z.B. libming oder pdflib.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/xxxxxxxxxxxxx/apachectl start&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/unzip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
Dort führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.3/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/local/bin&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten  MapServers&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg&lt;br /&gt;
 --with-png --with-freetype --with-proj --with-geos -with-libiconv=/usr --with-agg=/var/src/agg-2.5 --with-postgis=/usr/bin/pg_config&lt;br /&gt;
 --with-threads --with-php=/usr/include/php5&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles komipiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version. Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin&lt;br /&gt;
und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34334</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34334"/>
		<updated>2009-01-22T08:52:50Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Installation der Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
''Hinweis für Windows-Benutzer'' : Sollten Sie MapServer unter aktuellen Windows-Versionen wie 2003 unter IIS 6.0 laufen lassen wollen\footnote{Von IIS ist allerdings aus Sicherheitsgründen dringend abzuraten.}, beachten Sie bitte, dass die Software über ein neues Sicherheitsmodell verfügt und in der Standardeinstellung keine dynamisch generierten Inhalte ausliefert. Genaueres erfahren Sie auf der Microsoft-Website.&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''/win32bin/ms40_gif_pg.zip''  Ein fertiges Binary, dass ''.gif'' -Bilder produziert, gegen die GDAL gelinkt ist, auf PostGIS zugreifen kann und sowohl als WMS-konformer Client als auch Server dienen kann. Desweiteren kann dieses Binary PDF und Flash erzeugen, umprojizieren und mit TrueType-Schriften umgehen.  &lt;br /&gt;
*''/win32bin/ms40_png_pg.zip''  Genau das gleiche, allerdings mit PNG statt GIF.  &lt;br /&gt;
&lt;br /&gt;
Beide Archive sind rund 10 Megabytes groß.&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch zwei Pakete, die mit den beiden genannten identisch sind, allerdings die PostGIS-Unterstützung durch Unterstützung für Oracle Spatial-Datenbanken ersetzen. Die Oracle-Bibliotheken werden nicht mitgeliefert und müssen demnach bereits auf dem Zielsystem vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Umständen finden sich im Internet für diverse Systeme Binaries mit einkompilierten Spezialitäten. Mit ein wenig Suche sollten Sie beispielsweise auch im Archiv der Mailingliste entsprechende Verweise auftun können.&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Linux-Distributionen auf Intel-Systeme gibt es ein Paket, das von der Firma intevation geschnürt wird. Sie finden es unter~[[ftp:intevation:rpm]].&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35).&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken.&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/xxxxxxxxxxxxx/apachectl start&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/unzip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
Dort führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.3/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/local/bin&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten  MapServers&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg&lt;br /&gt;
 --with-png --with-freetype --with-proj --with-geos -with-libiconv=/usr --with-agg=/var/src/agg-2.5 --with-postgis=/usr/bin/pg_config&lt;br /&gt;
 --with-threads --with-php=/usr/include/php5&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles komipiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version. Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin&lt;br /&gt;
und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34333</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34333"/>
		<updated>2009-01-22T08:49:25Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
''Hinweis für Windows-Benutzer'' : Sollten Sie MapServer unter aktuellen Windows-Versionen wie 2003 unter IIS 6.0 laufen lassen wollen\footnote{Von IIS ist allerdings aus Sicherheitsgründen dringend abzuraten.}, beachten Sie bitte, dass die Software über ein neues Sicherheitsmodell verfügt und in der Standardeinstellung keine dynamisch generierten Inhalte ausliefert. Genaueres erfahren Sie auf der Microsoft-Website.&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''/win32bin/ms40_gif_pg.zip''  Ein fertiges Binary, dass ''.gif'' -Bilder produziert, gegen die GDAL gelinkt ist, auf PostGIS zugreifen kann und sowohl als WMS-konformer Client als auch Server dienen kann. Desweiteren kann dieses Binary PDF und Flash erzeugen, umprojizieren und mit TrueType-Schriften umgehen.  &lt;br /&gt;
*''/win32bin/ms40_png_pg.zip''  Genau das gleiche, allerdings mit PNG statt GIF.  &lt;br /&gt;
&lt;br /&gt;
Beide Archive sind rund 10 Megabytes groß.&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch zwei Pakete, die mit den beiden genannten identisch sind, allerdings die PostGIS-Unterstützung durch Unterstützung für Oracle Spatial-Datenbanken ersetzen. Die Oracle-Bibliotheken werden nicht mitgeliefert und müssen demnach bereits auf dem Zielsystem vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Umständen finden sich im Internet für diverse Systeme Binaries mit einkompilierten Spezialitäten. Mit ein wenig Suche sollten Sie beispielsweise auch im Archiv der Mailingliste entsprechende Verweise auftun können.&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Linux-Distributionen auf Intel-Systeme gibt es ein Paket, das von der Firma intevation geschnürt wird. Sie finden es unter~[[ftp:intevation:rpm]].&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35).&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken.(ausführlicher)&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/xxxxxxxxxxxxx/apachectl start&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/unzip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
Dort führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.3/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/local/bin&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten  MapServers&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg&lt;br /&gt;
 --with-png --with-freetype --with-proj --with-geos -with-libiconv=/usr --with-agg=/var/src/agg-2.5 --with-postgis=/usr/bin/pg_config&lt;br /&gt;
 --with-threads --with-php=/usr/include/php5&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles komipiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version. Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin&lt;br /&gt;
und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34330</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34330"/>
		<updated>2009-01-22T08:14:33Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
''Hinweis für Windows-Benutzer'' : Sollten Sie MapServer unter aktuellen Windows-Versionen wie 2003 unter IIS 6.0 laufen lassen wollen\footnote{Von IIS ist allerdings aus Sicherheitsgründen dringend abzuraten.}, beachten Sie bitte, dass die Software über ein neues Sicherheitsmodell verfügt und in der Standardeinstellung keine dynamisch generierten Inhalte ausliefert. Genaueres erfahren Sie auf der Microsoft-Website.&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''/win32bin/ms40_gif_pg.zip''  Ein fertiges Binary, dass ''.gif'' -Bilder produziert, gegen die GDAL gelinkt ist, auf PostGIS zugreifen kann und sowohl als WMS-konformer Client als auch Server dienen kann. Desweiteren kann dieses Binary PDF und Flash erzeugen, umprojizieren und mit TrueType-Schriften umgehen.  &lt;br /&gt;
*''/win32bin/ms40_png_pg.zip''  Genau das gleiche, allerdings mit PNG statt GIF.  &lt;br /&gt;
&lt;br /&gt;
Beide Archive sind rund 10 Megabytes groß.&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch zwei Pakete, die mit den beiden genannten identisch sind, allerdings die PostGIS-Unterstützung durch Unterstützung für Oracle Spatial-Datenbanken ersetzen. Die Oracle-Bibliotheken werden nicht mitgeliefert und müssen demnach bereits auf dem Zielsystem vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Umständen finden sich im Internet für diverse Systeme Binaries mit einkompilierten Spezialitäten. Mit ein wenig Suche sollten Sie beispielsweise auch im Archiv der Mailingliste entsprechende Verweise auftun können.&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Linux-Distributionen auf Intel-Systeme gibt es ein Paket, das von der Firma intevation geschnürt wird. Sie finden es unter~[[ftp:intevation:rpm]].&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (http.//trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output, wird eher selten eingesetzt.&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35).&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken.(ausführlicher)&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/xxxxxxxxxxxxx/apachectl start&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/unzip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
Dort führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.3/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/local/bin&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten  MapServers&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg&lt;br /&gt;
 --with-png --with-freetype --with-proj --with-geos -with-libiconv=/usr --with-agg=/var/src/agg-2.5 --with-postgis=/usr/bin/pg_config&lt;br /&gt;
 --with-threads --with-php=/usr/include/php5&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles komipiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version. Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin&lt;br /&gt;
und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34329</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34329"/>
		<updated>2009-01-22T08:12:11Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
''Hinweis für Windows-Benutzer'' : Sollten Sie MapServer unter aktuellen Windows-Versionen wie 2003 unter IIS 6.0 laufen lassen wollen\footnote{Von IIS ist allerdings aus Sicherheitsgründen dringend abzuraten.}, beachten Sie bitte, dass die Software über ein neues Sicherheitsmodell verfügt und in der Standardeinstellung keine dynamisch generierten Inhalte ausliefert. Genaueres erfahren Sie auf der Microsoft-Website.&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''/win32bin/ms40_gif_pg.zip''  Ein fertiges Binary, dass ''.gif'' -Bilder produziert, gegen die GDAL gelinkt ist, auf PostGIS zugreifen kann und sowohl als WMS-konformer Client als auch Server dienen kann. Desweiteren kann dieses Binary PDF und Flash erzeugen, umprojizieren und mit TrueType-Schriften umgehen.  &lt;br /&gt;
*''/win32bin/ms40_png_pg.zip''  Genau das gleiche, allerdings mit PNG statt GIF.  &lt;br /&gt;
&lt;br /&gt;
Beide Archive sind rund 10 Megabytes groß.&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch zwei Pakete, die mit den beiden genannten identisch sind, allerdings die PostGIS-Unterstützung durch Unterstützung für Oracle Spatial-Datenbanken ersetzen. Die Oracle-Bibliotheken werden nicht mitgeliefert und müssen demnach bereits auf dem Zielsystem vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Umständen finden sich im Internet für diverse Systeme Binaries mit einkompilierten Spezialitäten. Mit ein wenig Suche sollten Sie beispielsweise auch im Archiv der Mailingliste entsprechende Verweise auftun können.&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Linux-Distributionen auf Intel-Systeme gibt es ein Paket, das von der Firma intevation geschnürt wird. Sie finden es unter~[[ftp:intevation:rpm]].&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (http.//trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output. (wird eher selten eingesetzt)&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35).&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken.(ausführlicher)&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/xxxxxxxxxxxxx/apachectl start&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/unzip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
Dort führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.3/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/local/bin&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten  MapServers&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg&lt;br /&gt;
 --with-png --with-freetype --with-proj --with-geos -with-libiconv=/usr --with-agg=/var/src/agg-2.5 --with-postgis=/usr/bin/pg_config&lt;br /&gt;
 --with-threads --with-php=/usr/include/php5&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles komipiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version. Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin&lt;br /&gt;
und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34327</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34327"/>
		<updated>2009-01-22T08:08:45Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Installation der Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
''Hinweis für Windows-Benutzer'' : Sollten Sie MapServer unter aktuellen Windows-Versionen wie 2003 unter IIS 6.0 laufen lassen wollen\footnote{Von IIS ist allerdings aus Sicherheitsgründen dringend abzuraten.}, beachten Sie bitte, dass die Software über ein neues Sicherheitsmodell verfügt und in der Standardeinstellung keine dynamisch generierten Inhalte ausliefert. Genaueres erfahren Sie auf der Microsoft-Website.&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''/win32bin/ms40_gif_pg.zip''  Ein fertiges Binary, dass ''.gif'' -Bilder produziert, gegen die GDAL gelinkt ist, auf PostGIS zugreifen kann und sowohl als WMS-konformer Client als auch Server dienen kann. Desweiteren kann dieses Binary PDF und Flash erzeugen, umprojizieren und mit TrueType-Schriften umgehen.  &lt;br /&gt;
*''/win32bin/ms40_png_pg.zip''  Genau das gleiche, allerdings mit PNG statt GIF.  &lt;br /&gt;
&lt;br /&gt;
Beide Archive sind rund 10 Megabytes groß.&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch zwei Pakete, die mit den beiden genannten identisch sind, allerdings die PostGIS-Unterstützung durch Unterstützung für Oracle Spatial-Datenbanken ersetzen. Die Oracle-Bibliotheken werden nicht mitgeliefert und müssen demnach bereits auf dem Zielsystem vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Umständen finden sich im Internet für diverse Systeme Binaries mit einkompilierten Spezialitäten. Mit ein wenig Suche sollten Sie beispielsweise auch im Archiv der Mailingliste entsprechende Verweise auftun können.&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Linux-Distributionen auf Intel-Systeme gibt es ein Paket, das von der Firma intevation geschnürt wird. Sie finden es unter~[[ftp:intevation:rpm]].&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (http.//trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output.&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35).&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken.(ausführlicher)&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/xxxxxxxxxxxxx/apachectl start&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/unzip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
Dort führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.3/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/local/bin&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten  MapServers&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg&lt;br /&gt;
 --with-png --with-freetype --with-proj --with-geos -with-libiconv=/usr --with-agg=/var/src/agg-2.5 --with-postgis=/usr/bin/pg_config&lt;br /&gt;
 --with-threads --with-php=/usr/include/php5&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles komipiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version. Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin&lt;br /&gt;
und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34322</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34322"/>
		<updated>2009-01-22T08:02:48Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
''Hinweis für Windows-Benutzer'' : Sollten Sie MapServer unter aktuellen Windows-Versionen wie 2003 unter IIS 6.0 laufen lassen wollen\footnote{Von IIS ist allerdings aus Sicherheitsgründen dringend abzuraten.}, beachten Sie bitte, dass die Software über ein neues Sicherheitsmodell verfügt und in der Standardeinstellung keine dynamisch generierten Inhalte ausliefert. Genaueres erfahren Sie auf der Microsoft-Website.&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''/win32bin/ms40_gif_pg.zip''  Ein fertiges Binary, dass ''.gif'' -Bilder produziert, gegen die GDAL gelinkt ist, auf PostGIS zugreifen kann und sowohl als WMS-konformer Client als auch Server dienen kann. Desweiteren kann dieses Binary PDF und Flash erzeugen, umprojizieren und mit TrueType-Schriften umgehen.  &lt;br /&gt;
*''/win32bin/ms40_png_pg.zip''  Genau das gleiche, allerdings mit PNG statt GIF.  &lt;br /&gt;
&lt;br /&gt;
Beide Archive sind rund 10 Megabytes groß.&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch zwei Pakete, die mit den beiden genannten identisch sind, allerdings die PostGIS-Unterstützung durch Unterstützung für Oracle Spatial-Datenbanken ersetzen. Die Oracle-Bibliotheken werden nicht mitgeliefert und müssen demnach bereits auf dem Zielsystem vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Umständen finden sich im Internet für diverse Systeme Binaries mit einkompilierten Spezialitäten. Mit ein wenig Suche sollten Sie beispielsweise auch im Archiv der Mailingliste entsprechende Verweise auftun können.&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Linux-Distributionen auf Intel-Systeme gibt es ein Paket, das von der Firma intevation geschnürt wird. Sie finden es unter~[[ftp:intevation:rpm]].&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (http.//trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output.&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35).&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
Die heruntergeladenen Dateien sind noch &amp;quot;gepackt&amp;quot;, diese müssen Sie &amp;quot;entpacken&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Eine .tar,gz Datei entpacken Sie mit: &lt;br /&gt;
&lt;br /&gt;
 tar xvfz freetype-2.3.8.tar.gz &lt;br /&gt;
&lt;br /&gt;
Eine tar.bz2-Datei entpacken Sie mit:&lt;br /&gt;
&lt;br /&gt;
 tar xvfl geos-3.0.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken.(ausführlicher)&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/xxxxxxxxxxxxx/apachectl start&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/unzip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
Dort führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.3/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/local/bin&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten  MapServers&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg&lt;br /&gt;
 --with-png --with-freetype --with-proj --with-geos -with-libiconv=/usr --with-agg=/var/src/agg-2.5 --with-postgis=/usr/bin/pg_config&lt;br /&gt;
 --with-threads --with-php=/usr/include/php5&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles komipiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version. Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin&lt;br /&gt;
und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34320</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34320"/>
		<updated>2009-01-22T07:58:16Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Installation der Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
''Hinweis für Windows-Benutzer'' : Sollten Sie MapServer unter aktuellen Windows-Versionen wie 2003 unter IIS 6.0 laufen lassen wollen\footnote{Von IIS ist allerdings aus Sicherheitsgründen dringend abzuraten.}, beachten Sie bitte, dass die Software über ein neues Sicherheitsmodell verfügt und in der Standardeinstellung keine dynamisch generierten Inhalte ausliefert. Genaueres erfahren Sie auf der Microsoft-Website.&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''/win32bin/ms40_gif_pg.zip''  Ein fertiges Binary, dass ''.gif'' -Bilder produziert, gegen die GDAL gelinkt ist, auf PostGIS zugreifen kann und sowohl als WMS-konformer Client als auch Server dienen kann. Desweiteren kann dieses Binary PDF und Flash erzeugen, umprojizieren und mit TrueType-Schriften umgehen.  &lt;br /&gt;
*''/win32bin/ms40_png_pg.zip''  Genau das gleiche, allerdings mit PNG statt GIF.  &lt;br /&gt;
&lt;br /&gt;
Beide Archive sind rund 10 Megabytes groß.&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch zwei Pakete, die mit den beiden genannten identisch sind, allerdings die PostGIS-Unterstützung durch Unterstützung für Oracle Spatial-Datenbanken ersetzen. Die Oracle-Bibliotheken werden nicht mitgeliefert und müssen demnach bereits auf dem Zielsystem vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Umständen finden sich im Internet für diverse Systeme Binaries mit einkompilierten Spezialitäten. Mit ein wenig Suche sollten Sie beispielsweise auch im Archiv der Mailingliste entsprechende Verweise auftun können.&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Linux-Distributionen auf Intel-Systeme gibt es ein Paket, das von der Firma intevation geschnürt wird. Sie finden es unter~[[ftp:intevation:rpm]].&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (http.//trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output.&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35).&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 tiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken.(ausführlicher)&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/xxxxxxxxxxxxx/apachectl start&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/unzip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
Dort führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.3/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/local/bin&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten  MapServers&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg&lt;br /&gt;
 --with-png --with-freetype --with-proj --with-geos -with-libiconv=/usr --with-agg=/var/src/agg-2.5 --with-postgis=/usr/bin/pg_config&lt;br /&gt;
 --with-threads --with-php=/usr/include/php5&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles komipiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version. Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin&lt;br /&gt;
und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34319</id>
		<title>HBUMNMapServer ger Capter Bezug</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=HBUMNMapServer_ger_Capter_Bezug&amp;diff=34319"/>
		<updated>2009-01-22T07:56:59Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Kai-Behncke: /* Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bezug und Installation (Florian Thürkow, Kai Behncke)&lt;br /&gt;
(1)\index{Bezug}\index{Installation}&lt;br /&gt;
&lt;br /&gt;
Die Installation des MapServers auf einem System kann zuweilen seine Tücken haben, insbesondere dann, wenn Sie die Quelltexte selber kompilieren möchten. Sie ist im folgenden Schritt für Schritt so beschrieben, dass Sie dennoch in kürzester Zeit zu einem laufenden System kommen können.&lt;br /&gt;
&lt;br /&gt;
=Bezug=&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website http://mapserver.org gibt es eine Download-Sektion, die in diverse Rubriken unterteilt ist:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''Offizieller Release'' : Dieses Paket enthält den Quellcode für die aktuelle, stabile Version des MapServers. Zur Drucklegung dieses Buches ist das Version 5.2.1. &lt;br /&gt;
&lt;br /&gt;
*''Ältere Releases'' : Alte Versionen. Unterstützt wird vor allen Dingen immer die aktuelle Version. Fragen auf der Mailingliste zur älteren Version werden gerne mit dem Hinweis beantwortet, man solle doch auch die aktuelle Version upgraden.&lt;br /&gt;
    &lt;br /&gt;
*''Interim Builds'' : Dies sind täglich (automatisch) vorgenommene Kompilierungen aus dem CVS-Verzeichnis; d.h. aus dem Verzeichnis, in dem die Entwickler den aktuellsten Quellcode lagern. Der Umgang mit diesen Paketen soll an dieser Stelle nicht behandelt werden, zumal nicht einmal sichergestellt ist, dass sie überhaupt funktionieren.    &lt;br /&gt;
*''Windows'' : Für Windows gibt es spezielle Pakete, mehr dazu weiter unten. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt für alle Wege der Installation, dass Sie am Ende das fertige MapServer-Binary in das CGI-Verzeichnis Ihres Webservers kopieren. Sie können prüfen, ob das Programm ausgeführt wird, indem Sie (nachdem der Webserver gestartet worden ist) seinen URL  aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
http://www.example.com/cgi-bin/mapserv&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Fehlermeldung, die Sie dann erhalten sollten, lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
No query information to decode. QUERY_STRING is set, but empty.&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motzt der Server herum, ist er gesund, wie bereits in Abschnitt~\ref{text:mapfile:cgi} erklärt. Beachten Sie, dass Sie unter Windows nicht gezwungenermaßen die Endung =.exe=  an en URL-Aufruf anhängen müssen.&lt;br /&gt;
&lt;br /&gt;
''Hinweis für Windows-Benutzer'' : Sollten Sie MapServer unter aktuellen Windows-Versionen wie 2003 unter IIS 6.0 laufen lassen wollen\footnote{Von IIS ist allerdings aus Sicherheitsgründen dringend abzuraten.}, beachten Sie bitte, dass die Software über ein neues Sicherheitsmodell verfügt und in der Standardeinstellung keine dynamisch generierten Inhalte ausliefert. Genaueres erfahren Sie auf der Microsoft-Website.&lt;br /&gt;
&lt;br /&gt;
==Vorkompiliert==&lt;br /&gt;
&lt;br /&gt;
Für Windows erhalten Sie von der oben genannten Website die beiden folgenden ''.zip'' -Archive:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*''/win32bin/ms40_gif_pg.zip''  Ein fertiges Binary, dass ''.gif'' -Bilder produziert, gegen die GDAL gelinkt ist, auf PostGIS zugreifen kann und sowohl als WMS-konformer Client als auch Server dienen kann. Desweiteren kann dieses Binary PDF und Flash erzeugen, umprojizieren und mit TrueType-Schriften umgehen.  &lt;br /&gt;
*''/win32bin/ms40_png_pg.zip''  Genau das gleiche, allerdings mit PNG statt GIF.  &lt;br /&gt;
&lt;br /&gt;
Beide Archive sind rund 10 Megabytes groß.&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch zwei Pakete, die mit den beiden genannten identisch sind, allerdings die PostGIS-Unterstützung durch Unterstützung für Oracle Spatial-Datenbanken ersetzen. Die Oracle-Bibliotheken werden nicht mitgeliefert und müssen demnach bereits auf dem Zielsystem vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter Umständen finden sich im Internet für diverse Systeme Binaries mit einkompilierten Spezialitäten. Mit ein wenig Suche sollten Sie beispielsweise auch im Archiv der Mailingliste entsprechende Verweise auftun können.&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Linux-Distributionen auf Intel-Systeme gibt es ein Paket, das von der Firma intevation geschnürt wird. Sie finden es unter~[[ftp:intevation:rpm]].&lt;br /&gt;
&lt;br /&gt;
==Quelltexte==&lt;br /&gt;
&lt;br /&gt;
Das herunterladen von Quelltexten und manuelle konfigurieren/kompilieren ist letztlich unter Linuxdistributionen die sauberste aber auch die langwierigste Form der Installation.&lt;br /&gt;
Ihre Nerven sollten, zumal wenn Sie eine solche Installation erstmalig durchführen, schon ein klein wenig strapazierfähig sein.&lt;br /&gt;
Aber keine Sorge, im Endeffekt wird der MapServer sicher laufen.&lt;br /&gt;
&lt;br /&gt;
Legen Sie als erstes mehrere Verzeichnisse an um die einzelnen Bibliotheken, den Apache Webserver, PHP, den MapServer herunterzuladen und letztlich zu installieren.&lt;br /&gt;
 &lt;br /&gt;
 mkdir /opt/install&lt;br /&gt;
 mkdir /opt/install/zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unter dem Quelltext, auch Quellcode (engl. source code) oder Programmcode, versteht man in der Informatik den für Menschen lesbaren, in einer Programmiersprache geschriebenen Text eines Computerprogramms.&lt;br /&gt;
In der Regel wird der entsprechende Code auf den jeweiligen Webseiten auch direkt als &amp;quot;Source-Code&amp;quot; angeboten.&lt;br /&gt;
Die Dateien erkennen Sie oft an der Endung &amp;quot;tar.gz&amp;quot; bzw. &amp;quot;tar.bz2&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Quelltexte zu kompilieren benötigen Sie zudem einige Entpackungsprogramme bzw. Kompiler. Oftmals sind diese&lt;br /&gt;
schon vorinstalliert, wenn nicht so müssen sie nachintsalliert werden, z.B.&lt;br /&gt;
&lt;br /&gt;
bison (ftp.gnu.org/gnu/bison) (Aktuell war 2.4) (C/C++ kompiler)&lt;br /&gt;
&lt;br /&gt;
gcc (http://gcc.gnu.org) (aktuell war 4.3.3) (Eine Compiler Collection)&lt;br /&gt;
&lt;br /&gt;
bzip2 (http://bzip.org/) (1.0.5) (Komprimierungs-/Dekomprimierungsprogramm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
=== Bibliotheken ===&lt;br /&gt;
&lt;br /&gt;
Laden Sie dann folgende Quellcodes herunter:&lt;br /&gt;
&lt;br /&gt;
freetype (http://www.freetype.org (Zum Zeitpunkt der Erstellung des Buches lag von freetype die Version 2.3.6 vor)).&lt;br /&gt;
FreeType stellt eine Bibliothek dar um vektorisierte Schriftarten in Rastergrafiken umzuwandeln.&lt;br /&gt;
Diese Bibliothek wird vom MapServer unbedingt benötigt (Die Bibliothek GD benötigt diese).&lt;br /&gt;
&lt;br /&gt;
zlib (http://www.zlib.net) (aktuell war Version 1.2.3).&lt;br /&gt;
Die Bibliothek zlib dient zum Komprimieren und Dekomprimieren von Daten mit dem sog. Deflate-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
libpng (http://www.libpng.org) (aktuell war Version 1.2.34).&lt;br /&gt;
Diese Biliothek sollte unbedingt installiert werden.&lt;br /&gt;
Die libpng-Bibliothek dient zum Bearbeiten/Darstellen von PNG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libgd (http://www.libgd.org (aktuell war 2.0.35).&lt;br /&gt;
GD dient zur Erstellung/zum Rendering u.a. von PNG-, JPEG- and GIF-Bildern. Diese Bibliothek wird unbedingt vom MapServer benötigt.&lt;br /&gt;
&lt;br /&gt;
Für den Fall, dass Sie internationale Zeichensätze integrieren wollen benötigen Sie noch die &lt;br /&gt;
libiconv-Bibliothek. Die erhalten Sie von http://www.gnu.org/software/libiconv/ .&lt;br /&gt;
&lt;br /&gt;
Sehr zu empfehlen sind auch die folgenden Bibliotheken:&lt;br /&gt;
&lt;br /&gt;
Proj (http.//trac.osgeo.org/proj) (4.6.1),&lt;br /&gt;
Bibliothek für kartographische Projektionen.&lt;br /&gt;
&lt;br /&gt;
AGG (http://antigrain.com) (2.5)&lt;br /&gt;
Dient ebenfalls zum Rendern von Grafiken, sorgt letztlich für ein etwas besseres Rendern als die GD-Bibliothek, ist aber auch etwas langsamer.&lt;br /&gt;
&lt;br /&gt;
Gdal (http://gdal.org) (1.6.0),&lt;br /&gt;
Bibliothek für ca. 40 Rasterformate, zugleich beinhaltet diese Bibliothek auch die OGR-Library mit Unterstützung für nahezu 20&lt;br /&gt;
Vektortypen (sollte möglichst installiert werden). Sollten Sie z.B. Arc SDE für Rasterdaten nutzen wollen, so benötigen Sie diese Bibliothek.&lt;br /&gt;
&lt;br /&gt;
libcurl (http://curl.haxx.se/libcurl) (7.19.2)-&lt;br /&gt;
Diese Bibliothek sorgt für OGC-(WFS/WMS/WCS)-Unterstützung (sehr wichtig!).&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
 FEHLT NOCH:FAST-CGI &lt;br /&gt;
&lt;br /&gt;
libtiff (http://www.libtiff.org) (aktuell: 3.8.2) Für Tiff-Dateien, wird für Geotiff benötigt&lt;br /&gt;
&lt;br /&gt;
ligbeotiff (http://trac.osgeo.org/geotiff (aktuell: 1.2.5)&lt;br /&gt;
LibGeoTIFF dient zum Lesen und Schreiben von GeoTIFF-Informationen.&lt;br /&gt;
&lt;br /&gt;
Geos (http://trac.osgeo.org/geos/) (3.0.3).&lt;br /&gt;
Letztlich eine Bibliothek zur geografischen Datenverarbeitung. Diese beinhaltet alle Operatoren der OGC-&lt;br /&gt;
Spezifikation für SimpleFeatures (z.B. Funktionen wie touch, union, intersect etc.).&lt;br /&gt;
Benötigt wird mindestens Version 4.10 des MapServers.&lt;br /&gt;
&lt;br /&gt;
libreadline (ftp.gnu.org/gnu/readline/readline-5.2.tar.gz) (5.2), &lt;br /&gt;
Bietet Funktionen an, um Kommandozeilen zu editieren.&lt;br /&gt;
Wird von PostgreSQL genutzt für die psql-Eingabekonsole.&lt;br /&gt;
&lt;br /&gt;
libjpeg (http://ijg.org) (6.0), &lt;br /&gt;
Dient zum Erstellen/Bearbeiten von JPEG-Bildern.&lt;br /&gt;
&lt;br /&gt;
libxml (ftp.xmlsoft.org/libxml2/).&lt;br /&gt;
Dient zum Parsen von xml. Wird für den OGC SOS-Support benötigt.&lt;br /&gt;
&lt;br /&gt;
pdflib (lite) (http://www.pdflib.com/products/pdflib-family/pdflib-lite): &lt;br /&gt;
Für die Erstellung von PDF-Output&lt;br /&gt;
&lt;br /&gt;
libming (http://www.libming.org): Für Macromedia Flash Output.&lt;br /&gt;
&lt;br /&gt;
Flex (http://flex.sourceforge.net) (Version 2.5.35).&lt;br /&gt;
&lt;br /&gt;
libpg: Diese Bibliothek steht zur Verfügung wenn Sie PostgresSQL/PostGIS installieren.&lt;br /&gt;
Den Quellcode finde Sie auf http://postgresql.org (8.3.5) bzw. auf http://postgis.refractions.net/download (1.3.5)&lt;br /&gt;
&lt;br /&gt;
Proprietäre Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Arc SDE Client Bibliothek: Diese Bibliothek steht nicht frei zur Verfügung, sie ist Bestandteil von von der ESRI-Geodatenbak ArcSDE.&lt;br /&gt;
&lt;br /&gt;
Oracle Spatial OCI: Aufsatz für die Oracle-Datenbank. Diese Bibliothek bekommen Sie von der Oracle-Seite.&lt;br /&gt;
&lt;br /&gt;
== Installation der Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sollten Sie dann in den Ordnern der entpackten Bibliotheken ausführen:&lt;br /&gt;
&lt;br /&gt;
 readline (./configure,make, make install)&lt;br /&gt;
&lt;br /&gt;
 zlib (./configure, make, make test (um zu überprüfen) make install)&lt;br /&gt;
&lt;br /&gt;
 libpng (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 libjpeg (./configure --enable-shared, make, make test, make install)&lt;br /&gt;
 make install-lib (dieser Befehl damit libjpeg auch ordentlich von der GD-Bibliothek erkannt wird)&lt;br /&gt;
&lt;br /&gt;
 flex (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 curl (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 freetype (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 Sofern Sie verschiedene internationale Zeichensätze installieren möchten müssen Sie zunächst &lt;br /&gt;
 libiconv installieren:&lt;br /&gt;
 &lt;br /&gt;
 libiconv (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gd (./configure  --with-liconv (diese Option nur dann, wenn Sie internationale Zeichensätze benötigen), make , make install)&lt;br /&gt;
&lt;br /&gt;
Sie können testen ob gd mit der libiconv kompiliert wurde indem Sie ein&lt;br /&gt;
&lt;br /&gt;
 gdlib-config --libs&lt;br /&gt;
&lt;br /&gt;
eingeben. Im Output sollte dann ein &amp;quot;-liconv&amp;quot; erscheinen.&lt;br /&gt;
&lt;br /&gt;
 geos (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 xml (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 gdal (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 proj (./configure, make, make install)&lt;br /&gt;
&lt;br /&gt;
 geotiff (./configure/make/make install)&lt;br /&gt;
&lt;br /&gt;
 AGG (Bei dieser Bibliothek brauchen Sie nur im Ordner des entpackten Quellcodes den Befehl &amp;quot;make&amp;quot; ausführen.&lt;br /&gt;
&lt;br /&gt;
.....sowie ggf. die weiteren Bibliotheken.(ausführlicher)&lt;br /&gt;
&lt;br /&gt;
=== Apache Webserver ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als Webserver nutzen Sie am Besten den Apache (2.2.11)&lt;br /&gt;
Den Quellcode bekommen Sie von httpd.apache.org/download.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend installieren Sie bitte den Apache Webserver.&lt;br /&gt;
Zunächst einmal führen Sie bitte im Ordner des entpackten Quellcodes (/opt/install/unzip/httpd-2.2.11) ein&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-so --enable-mime-magic --enable-cgi --prefix=/usr/local/apache&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
aus.&lt;br /&gt;
&lt;br /&gt;
Anschließend editieren Sie bitte die Konfigurationsdatei des Apache-Webserver&lt;br /&gt;
/usr/local/apache/httpd.conf. Geben Sie dort ein:&lt;br /&gt;
&lt;br /&gt;
 LoadModule php5_module modules/libphp5.so&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-php .php .phtml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achten Sie bitte unbedingt darauf, dass entweder der User des Apache (oder aber die Gruppe)&lt;br /&gt;
Inhaber des Ordners /usr/local/apache (und seiner Unterverzeichnisse) ist.&lt;br /&gt;
Wie der User/die Gruppe heissen steht in der Datei /usr/local/apache/httpd.conf.&lt;br /&gt;
&lt;br /&gt;
Ein &lt;br /&gt;
 ls -l im Ordner /usr/local&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zeigt, an, wem aktuell der Ordner /usr/local/apache gehört.&lt;br /&gt;
&lt;br /&gt;
Sollte z.B. der User &amp;quot;root&amp;quot; und auch die Gruppe &amp;quot;root&amp;quot; Inhaber sein, so ändern Sie dieses bitte mit:&lt;br /&gt;
&lt;br /&gt;
 chown -R root:daemon (je nachdem wie die Gruppe des Apache heißt) /usr/local/apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend starten Sie einmal bitte den Apache mittels&lt;br /&gt;
&lt;br /&gt;
 /usr/local/xxxxxxxxxxxxx/apachectl start&lt;br /&gt;
&lt;br /&gt;
und geben in Ihrem Browser ein:&lt;br /&gt;
&lt;br /&gt;
 http://localhost&lt;br /&gt;
&lt;br /&gt;
Es müßte eine Meldung der Art von &amp;quot;It works&amp;quot; kommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL/PostGIS ===&lt;br /&gt;
&lt;br /&gt;
Als nächstes installieren Sie einmal die PostgreSQL-Datenbank mit PostGIS-Aufsatz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./configure --without-readline (sofern es Schwierigkeiten gibt die libreadline zu finden)&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Für die PostGIS-Installation entpacken Sie bitte den PostGIS-Ordner und benennen Sie ihn in &amp;quot;postgis&amp;quot;.&lt;br /&gt;
Dieses funktioniert wie folgt:&lt;br /&gt;
&lt;br /&gt;
 mv postgis-1.3.5 postgis&lt;br /&gt;
&lt;br /&gt;
Den umbenannten Ordner &amp;quot;postgis&amp;quot; kopieren Sie in den Ordner /opt/install/unzip/postgresql-8.3.5/contrib.&lt;br /&gt;
&lt;br /&gt;
Dort führen Sie aus:&lt;br /&gt;
&lt;br /&gt;
 ./configure –with-pgsql=/usr/local/pgsql/bin/pg_config&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anschließend führen Sie bitte aus:&lt;br /&gt;
&lt;br /&gt;
 adduser postgres &lt;br /&gt;
&lt;br /&gt;
(Ein Standarduser mit dem Namen „postgres“ wird angelegt,&lt;br /&gt;
Sie müssen hierfür auch ein Passwort festlegen)&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/pgsql/data &lt;br /&gt;
 chown postgres /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(„postgres“ wird Besitzer des Verzeichnisses)&lt;br /&gt;
&lt;br /&gt;
 su – postgres &lt;br /&gt;
&lt;br /&gt;
(Einloggen als user postgres)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data &lt;br /&gt;
&lt;br /&gt;
(Datenbankschema wird initialisiert)&lt;br /&gt;
&lt;br /&gt;
 /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start &lt;br /&gt;
&lt;br /&gt;
(Start der Datenbank)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Sinnvoll ist es auf jeden Fall den Apache mit PHP zu nutzen, den aktuellen Quellcode bekommen Sie von &lt;br /&gt;
http://php.net/downloads.php)  (5.2.8)&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie bitte in den entpackten Ordner des PHP-Quellcodes:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/lib&lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --enable-shared --with-zlib --&lt;br /&gt;
 enable-mbstring --with-gd --with-pgsql –prefix=/usr/local/php5&lt;br /&gt;
&lt;br /&gt;
 mkdir /usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
(damit legen Sie ein Verzeichnis für PHP-Erweiterungen an, PHP/Mapscript wird hier später installiert)&lt;br /&gt;
&lt;br /&gt;
 cp /opt/install/unzip/php-5.2.3/php.ini-dist /usr/local/php5/lib/php.ini&lt;br /&gt;
&lt;br /&gt;
Dann geben Sie in der php.ini ein:&lt;br /&gt;
&lt;br /&gt;
 extension_dir=/usr/local/php5/extensions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um zu testen ob PHP funktioniert erstellen Sie eine Datei mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;? phpinfo(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nennen Sie diese &amp;quot;test.php&amp;quot; und legen Sie diese in den Ordner /usr/local/apache/htdocs&lt;br /&gt;
Anschließend rufen Sie auf: http://localhost/test.php&lt;br /&gt;
Wenn alles funktioniert erhalten Sie eine Ausgabe mit der aktuellen PHP-Version.&lt;br /&gt;
&lt;br /&gt;
=== UMN MapServer ===&lt;br /&gt;
&lt;br /&gt;
In den entpackten Quellen des UMN MapServers editieren Sie bitte die Datei mapsymbol.h &lt;br /&gt;
Standardmäßig ist die Anzahl der integrierbaren Symbole relativ niedrig.&lt;br /&gt;
Ändern Sie dieses z.B. wie folgt:&lt;br /&gt;
&lt;br /&gt;
 #define MS_SYMBOL_ALLOCSIZE 200&lt;br /&gt;
&lt;br /&gt;
Zudem ändern Sie einmal die Datei mapserver.h&lt;br /&gt;
&lt;br /&gt;
 #define MS_LAYER_ALLOCSIZE 200&lt;br /&gt;
 #define MS_CLASS_ALLOCSIZE 20&lt;br /&gt;
 #define MS_STYLE_ALLOCSIZE 4&lt;br /&gt;
 ...&lt;br /&gt;
 #define MS_MAXIMAGESIZE_DEFAULT 10000&lt;br /&gt;
&lt;br /&gt;
Damit es keine Probleme mit dem dynamischen Linken der Bibliotheken gibt ändern Sie bitte noch die Datei&lt;br /&gt;
&lt;br /&gt;
/etc/ld.so.conf&lt;br /&gt;
&lt;br /&gt;
oder eine ähnliche Datei in /etc/ld.so.conf.d/ (je nach distribution)&lt;br /&gt;
Fügen Sie dort die Zeilen&lt;br /&gt;
 &lt;br /&gt;
 /usr/local/bin&lt;br /&gt;
 /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
Anschließend geben Sie den Befehl&lt;br /&gt;
&lt;br /&gt;
 ldconfig &lt;br /&gt;
&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann wechseln Sie in den Ordner des entpackten  MapServers&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg&lt;br /&gt;
 --with-png --with-freetype --with-proj --with-geos -with-libiconv=/usr --with-agg=/var/src/agg-2.5 --with-postgis=/usr/bin/pg_config&lt;br /&gt;
 --with-threads --with-php=/usr/include/php5&lt;br /&gt;
&lt;br /&gt;
...und geben Sie dann ein&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
ein. Wenn alles komipiliert wird geben Sie ein&lt;br /&gt;
&lt;br /&gt;
 ./mapserv -v&lt;br /&gt;
&lt;br /&gt;
und Sie erhalten Informationen über die Version. Kopieren Sie das binary &amp;quot;mapserv&amp;quot; in den Ordner /usr/local/apache/cgi-bin&lt;br /&gt;
und führen Sie aus.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/cgi-bin/mapserv&lt;br /&gt;
&lt;br /&gt;
Wenn dann die Meldung&lt;br /&gt;
&lt;br /&gt;
==Änderungen==&lt;br /&gt;
&lt;br /&gt;
Eine Liste der aktuellsten Änderungen am MapServer-Quellcode finden Sie auf der Website von DM Solutions~[[http:website:dmsolutions]] unter ''/mapserver/dl/mapserver_ChangeLog.txt'' . Dabei handelt es sich um eine Auflistung aller Kommentare, die von den Entwicklern bei der Änderung von Dateien im CVS hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
==CVS==\index{CVS}&lt;br /&gt;
&lt;br /&gt;
Das CVS (Concurrent Versions System) ist ein System, mit dem Entwickler, die über ein Netzwerk verteilt sind, gemeinsam am gleichen Codebestand arbeiten können. So Sie auch keinen schreibenden Zugriff auf den MapServer-Code haben, so können Sie ihn sich dennoch lesend herunterladen und somit sozusagen immer 'on the bleeding edge' der MapServer-Entwicklung sein.&lt;br /&gt;
&lt;br /&gt;
Seien Sie aber gewarnt: Da es sich um Code handelt, an dem aktiv herumentwickelt wird, kann er Macken haben. Es ist nicht einmal gesagt, dass er überhaupt kompiliert. Es kann zeitraubend sein, dann an dieser Stelle auf die Fehlersuche gehen zu müssen.&lt;br /&gt;
&lt;br /&gt;
Geben Sie auf der Kommandozeile Ihrer Wahl ein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# export CVSROOT=:pserver:cvs@mapserver.gis.umn.edu:/data2/cvsroot&lt;br /&gt;
# cvs login&lt;br /&gt;
# cvs -z3 co mapserver&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anfrage nach einem Paßwort beim Login können Sie mit einem simplen Druck auf die Return-Taste befriedigen.&lt;br /&gt;
&lt;br /&gt;
Das Kommando =export=  belegt die Umgebungsvariable (hier =CVSROOT= ), wenn Sie die Shell =bash=  verwenden. Sollten Sie eine andere Shell benutzen, konsultieren Sie die Dokumentation dieser Shell, um mehr über das Setzen von Umgebungsvariablen herauszufinden.&lt;br /&gt;
&lt;br /&gt;
=Installation von Binaries=&lt;br /&gt;
&lt;br /&gt;
Die Installation von Binaries soll vor dem Kompilieren von Quelltexten genannt werden, da sie sich im allgemeinen wesentlich einfacher geriert. In den meisten Fällen sollte sich diese Art von Installation in wenigen Schritten abhandeln lassen.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Windows==(2)&lt;br /&gt;
&lt;br /&gt;
Auf der Mapserver Website~[[http:website:mapserver]] gibt es die oben genannten Windows-Binaries herunterzuladen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie das erste Archiv entpacken, finden Sie darin eine Menge ausfürbahrer Dateien, darunter auch das eigentliche MapServer-Binary =mapserver.exe= . Kopieren Sie diese Datei in das CGI-Verzeichnis Ihres Webservers. Was Sie mit den restlichen Programmen tun, die im wesentlichen auf der Kommandozeile von Nutzen sind, bleibt Ihnen überlassen. Einige von ihnen sind in Kapitel~\ref{text:tools} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Das zweite Archiv beinhaltet eine Menge DLLs, die Sie allesamt in das Systemverzeichnis zu kopieren sind; in einer Standardinstallation von Windows 2000 ist das beispielsweise =c:&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;windows&amp;lt;math&amp;gt;\backslash&amp;lt;/math&amp;gt;system32= .&lt;br /&gt;
&lt;br /&gt;
Danach ist der MapServer einsazbereit.&lt;br /&gt;
&lt;br /&gt;
==Binaries für Linux==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte Binaries für Linux zu finden ist in den meisten Fällen nicht ganz einfach. Das hat verschiedene Gründe.&lt;br /&gt;
&lt;br /&gt;
An erster Stelle steht die Vielfalt der Architekturen, auf denen Linux eingesetzt werden kann. Wenn Sie den MapServer auf einem 32-Bit Intel-System kompiliert haben, funktioniert es eben nur auf 32-Bit Intel-Systemen, aber schon nicht mehr unter dem Linux, das auf einer Sparc Station läuft.&lt;br /&gt;
&lt;br /&gt;
Die vielen unterschiedlichen Versionen von Kernel und C-Systembibliotheken können dazu führen, dass Binaries nicht überall laufen. Und wenn sich dynamisch gelinkte Bibliotheken an anderen als den vorgesehenen Stellen befinden, ist wieder alles aus. Das führt dazu, dass viele Softwarehersteller, wenn sie Software für Linux anbieten, nur eine bestimmte Version eines bestimmten Herstellers unterstützen. Das ist natürlich ein hochgradig unbefriedigender Zustand.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{RPM-basierte Linux-Systeme}\index{RPM}&lt;br /&gt;
&lt;br /&gt;
Für RPM-basierte Intel-Systeme (beispielsweise von SuSE, Red Hat oder Mandrake) vom Prozessortyp Pentium oder neuer bietet die Firma intevation unter [[ftp:intevation:rpm]] Pakete zum Download an.&lt;br /&gt;
&lt;br /&gt;
In dem Paket, das vollständig in einen eigenen Verzeichnisbaum unter =/opt/mapserver=  installiert wird, befinden sich: das ROSA-Applet, das ein Java-Applet ist, das auf einen MapServer zurückgreift und einige Zusatzfunktionen wie das Zoomen auf eine aufziehbare Box bietet; das offizielle Itasca-Demo; diverse Sprachanbindungen und einiges an Dokumentation. Dazu kommt natürlich ein einsatzbereites MapServer-Binary zusammen mit einem kleinen Webserver namens =mini_httpd= .&lt;br /&gt;
&lt;br /&gt;
Die Installation geht so schnell vonstatten, wie man es von RPM-Systemen kennt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# rpm --install mapserver-3.6.5-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über eventuelle Bibliotheksabhängigkeiten -- die dann grundsätzlich vom gleichen Ort herunterladbar sind -- informiert Sie die beiliegende Dokumentation. Zum Zeitpunkt der Drucklegung gab es noch kein aktualisiertes Paket für MapServer 4.0 auf dem FTP-Server; das kann sich inzwischen geändert haben.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Debian GNU/Linux}\index{Debian}&lt;br /&gt;
&lt;br /&gt;
Für Debian gibt es über den Befehl&lt;br /&gt;
 apt-get install mapserver-bin cgi-mapserver &lt;br /&gt;
die Möglichkeit den Mapserver auf einfachste Art und Weise zu installieren, doch aufgepasst: Die Debian-stable-Version hinkt in der Aktualität immer etwas nach. Zum Zeitpunkt der Bucherstellung war Version 5.2.1 aktuell, das auf diese Art und Weise installiete Debian-Paket jedoch lag noch bei Version 4.10.2.&lt;br /&gt;
&lt;br /&gt;
=Die MapMedia MapServer Suite=&lt;br /&gt;
&lt;br /&gt;
So einfach es auch ist, MapServer zu installieren, so kann es doch zuweilen recht zeitraubend sein, alle Beispielapplikationen zu installieren und anzupassen, Dokumentation zusammenzusuchen usw.&lt;br /&gt;
&lt;br /&gt;
Um ein wenig Zeit zu sparen, gibt es von MapMedia, allerdings bisher nur für Windows, die MapServer Suite. Dabei handelt es sich im wesentlichen um ein Installationsprogramm, dass Ihnen den MapServer auf Ihrem System an den Start bringt, inklusive diverser Beispielapplikationen, MapLab und so weiter.&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über die MapServer Suite finden Sie auf der Website von MapMedia~[[http:website:mapmedia]].&lt;br /&gt;
&lt;br /&gt;
=Kompilieren der Quelltexte=(3)&lt;br /&gt;
&lt;br /&gt;
Wir konzentrieren uns an dieser Stelle auf das Kompilieren der Software auf einem Linux-System. Anmerkungen zu anderen Plattformen, insbesondere Windows, werden an geeigneter Stelle eingeschoben. Generell fährt man unter Windows jedoch mit vorkompilierten Binaries besser. Detailliertere Dokumentation finden Sie beispielsweise im MapServer-Wiki; dort sind dann auch Details für andere Betriebssysteme vorhanden, beispielsweise MacOS~X.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren der Quelltexte ist ein aufwendiger Vorgang, der einige Vorkenntnisse erfordert. Sie sollten mit einer Shell Ihrer Wahl umgehen können und mit der Installation von Software mittels =make=  und ähnlichen Werkzeugen vertraut sein. Unter Umständen benötigen Sie auch einen Texteditor, um leichte Veränderungen in der einen oder anderen Datei vornehmen zu können&lt;br /&gt;
&lt;br /&gt;
Einige der folgenden Pakete sind bereits Bestandteil der gängigsten Distributionen. Werfen Sie einen Blick in die Liste der installierten Pakete in Ihrem System, um herauszufinden, welche Pakete bereits vorhanden sind und daher nicht mehr installiert werden müssen.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass Sie für die Installation der ganzen bildverarbeitenden Pakete und so weiter ''keine X-Installation benötigen'' . Das Lesen und Schreiben von Bildern hat nichts mit ihrer Darstellung auf dem Bildschirm zu tun, und auf einem Webserver benötigt man sowieso keine grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
Zwingend notwendig sind für eine Kompilierung des MapServer die folgenden Pakete:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Bibliothek GD in der Version 2, die das Rendern der Bilder übernimmt~[[http:website:gd]]. Beachten Sie bitte die Anmerkungen in Abschnitt~4, wenn Sie ein für Ihre fertigen Karten GIF als Ausgabeformat wünschen. GD kann im Moment JPEG und PNG produzieren\footnote{Und noch einige wenige andere, die aber für eine Darstellung im Webbrowser nicht von Interesse sind.}.    MapServer 4.0 benötigt zwingend mindestens Version 2.0.12 der GD.  &lt;br /&gt;
&lt;br /&gt;
Mit diesen simplen Voraussetzungen können Sie bereits einen MapServer kompilieren, der Shapefiles lesen und Karten in diversen Formaten wie PNG, JPEG erzeugen kann, vorausgesetzt, die entsprechenden Grafikbibliotheken sind installiert.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Pakete sind zu empfehlen, falls man über diese simple Funktionialität hinaus etwas komplexere Anwendungen möchte:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Die Projektionsbibliothek proj.4~[[http:website:libproj]], mit der Daten umprojiziert werden können. Zwingend notwendig, um OGC-konforme Funktionialitäten zu erhalten. Und natürlich, wenn man Daten umprojizieren will. Generell eine Sache, die man haben möchte.    &lt;br /&gt;
*Die Bibliothek libtiff~[[http:website:tiff]], um das gängigste Karten-Rasterformat (mit Worldfiles) einlesen zu können. Bitte beachten Sie, dass Sie für das Format GeotTIFF eine weitere Bibliothek (libgeotiff) benötigen.    &lt;br /&gt;
*FreeType~[[http:website:freetype]], für die Unterstützung von TrueType-Schriften. MapServer kann 'von Haus aus' nur mit einigen Bitmap-Schriften umgehen, die schlecht skalieren. Vor MapServer Version 4.0 war es zwingend notwendig, eine 1er-Version dieser Bibliothek zu verwenden. Dies war im wesentlichen der älteren GD-Version geschuldet, die in MapServer zum Einsatz kam. Die aktuelle Version 2 von GD muß eingesetzt werden, zusammen mit FreeType in der Version 2.    &lt;br /&gt;
*libcurl~[[http:website:libcurl]], eine Bibliothek für den Dateitransfer über Protokolle wie HTTP, FTP und so weiter. Wird benötigt, um den MapServer als OGC-konformen Client fungieren zu lassen. Diese Bibliothek ersetzt mit Version 4.0 die bisher verwendete WWW-Bibliothek libwww~[[http:website:libwww]]. Sie benötigen mindestens Version 7.10.1.  &lt;br /&gt;
&lt;br /&gt;
Weitere, optionale Pakete für verschiedene Funktionen, die recht häufig zum Einsatz kommen:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*libgeotiff~[[http:website:geotiff]] zum Einlesen von GeoTiff-Bildern. Dieses Dateiformat unterscheidet sich von georeferenzierten Tiff-Bildern, die mit seperaten Worldfiles funktionierten.    &lt;br /&gt;
*GDAL~[[http:website:gdal]], eine Bibliothek, die Zugriff auf diverse georeferenzierte Rasterformate ermöglicht. Bestandteil von GDAL ist die OGR (Simple Features Library), die Zugriff auf diverse Vektorformate ermöglicht.    &lt;br /&gt;
*PostGIS~[[http:website:postgis]], eine Erweiterung für die Datenbank PostgreSQL; ähnlich ESRI ArcSDE oder den Oracle Spatial Extensions. Für die Installation von PostGIS benötigen Sie Zugriff auf den Quelltextbaum, aus dem PostgreSQL kompiliert worden ist -- für die PostGIS-Unterstützung im MapServer ist das nicht mehr nötig.  &lt;br /&gt;
&lt;br /&gt;
Und dann sind da noch die folgenden Bibliotheken, die aus verschiedenen Gründen zum Einsatz kommen können. Sie werden nicht (eventuell: noch nicht) so häufig angewendet.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*ming~[[http:website:ming]], eine Bibliothek zum Erzeugen von Flash-Output.    &lt;br /&gt;
*pdflib~[[http:website:pdflib]], eine Bibliothek zum Erzeugen von PDF-Output. Bitte beachten Sie insbesondere die Lizenz dieser Software!    &lt;br /&gt;
*Xerces~[[http:website:xerces]], eine XML-Bibliothek, die benötigt wird, um den MapServer als WFS-Client fungieren zu lassen.  &lt;br /&gt;
&lt;br /&gt;
Und wenn das noch nicht reicht, dann können Sie sich noch mit den eventuellen Abhängigkeiten der Bibliothek GDAL auseinandersetzen, mit der Sie Zugriff auf diverse, mehr oder weniger 'esoterische' Datenformate erlangen können. Werfen Sie einen Blick in Anhang~\ref{anhang:formate}, um herauszufinden, welche Formate eventuell für Sie interessant werden könnten.&lt;br /&gt;
&lt;br /&gt;
==GD==(4)\index{GD}&lt;br /&gt;
&lt;br /&gt;
Diese Grafikbibliothek ist für das Rendern der Bilder verantwortlich. MapServer erstellt eine Darstellung der fertigen Karte im Speicher. GD ist dann dafür verantwortlich, diese Darstellung in das gewünschte Bildformat zu überführen.&lt;br /&gt;
&lt;br /&gt;
PNG ist das vorgegebene Bildformat in den aktuellen Versionen von GD. Ältere Versionen (1.6 und früher) produzierten noch GIF-Bilder. Wegen der Patente, die auf diesem Format liegen, entschied sich der Autor jedoch zu einem bestimmten Zeitpunkt, das Format fallen zu lassen und stattdessen PNG zu erzeugen, welches ein offen liegendes Format ist und keine Lizenzgebühren bei der vollständigen Implementierung benötigt. Aus Benutzersicht ist diese Entscheidung dahingehend nicht relevant, als jeder aktuelle Webbrowser dieses Format darstellen kann\footnote{Außer vielleicht lynx, links und andere kommandozeilenbasierte Browser. Diese können aber offensichtlich mit Karten generell nichts anfangen, egal in welchem Format sie vorliegen.}.&lt;br /&gt;
&lt;br /&gt;
Vor Version 4.0 des MapServers war GD 1.8.4 die aktuelle Version. Diese Fassung der GD krankte an diversen Schwächen: insbesondere die Kompilierung und Installation war haarig, es wurde generell nur eine statische Fassung der Bibliothek erstellt und es gab nur Probleme mit der Zusammenarbeit aktueller Versionen der TrueType-Bibliothek FreeType. Außerdem war nicht in der Lage, Bilder mit mehr als 256 Farben zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Mit der Version 2 wurde das jedoch alles anders, und so können wir uns nun an Bildern in TrueColor und funktionierender Beschriftung erfreuen. Beim Schreiben dieser Zeilen ist die Version 2.0.15 die aktuellste; MapServer verlangt mindestens nach Version 2.0.12 der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass es auch mit dieser Version der GD nicht möglich ist, GIF-Bilder zu produzieren.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken des Archivs von~[[http:website:gd]] finden Sie im Verzeichnis ein ''configure'' -Skript (auch das eine Neuerung), das Sie etwa wie folgt aufrufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; ./configure --with-png=/usr/local \&lt;br /&gt;
                     --with-freetype=/usr/local \&lt;br /&gt;
                     --with-jpeg=/usr/local \&lt;br /&gt;
                     --with-xpm=/usr/X11R6&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box gd-2.0.15 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfadangaben müssen natürlich angepaßt werden, je nachdem, wo die entsprechenden Pakete bei Ihnen installiert sind.&lt;br /&gt;
&lt;br /&gt;
Obwohl MapServer später selber nach einer FreeType-Installation sucht, muß auch GD gegen FreeType gelinkt werden, falls Sie TrueType-Beschrifungen wünschen. Achten Sie unbedingt darauf, dass Sie den MapServer gegen die gleiche Version von FreeType linken, wie die GD.&lt;br /&gt;
&lt;br /&gt;
==Proj.4-Unterstüzung==(5)\index{Proj.4}&lt;br /&gt;
&lt;br /&gt;
Die Installation der Projektionsbibliothek proj.4 geht flott vonstatten. Dem Entpacken des Quellcodes folgt ein simples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; ./configure&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;math&amp;gt; make&lt;br /&gt;
root@box proj-4.4.7 &amp;lt;/math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war alles. Aktuelle Version ist Version 4.4.7.&lt;br /&gt;
&lt;br /&gt;
==EPPL7-Unterstützung==&lt;br /&gt;
&lt;br /&gt;
Die ''Environmental Planning Programming Language''  stammt aus einem älteren GIS der Universität von Minnesota. Um dieses Format lesen zu können, ist keine gesonderte Bibliothek notwendig; insbesondere ist die Unterstützung für dieses Format implizit im MapServer vorhanden, falls sie nicht explizit bei der Konfiguration der MapServer-Quellen abgeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Server==&lt;br /&gt;
&lt;br /&gt;
Die Fähigkeit, als WMS-Server zu fungieren, wird automatisch aktiviert, wenn dem Konfigurationsskript des MapServer die Unterstützung der Projektionsbibliothek proj.4 abgefordert wird (siehe weiter unten). Weitere Schritte sind nicht nötig. Sollten Sie WMS-Funktionalität nicht wünschen, müssen Sie diese später bei der Kompilierung des MapServers explizit ausschalten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WMS-Client==(6)&lt;br /&gt;
&lt;br /&gt;
Auch die Installation von curl geht erfreulich schnell und einfach vonstatten. Nach dem Entpacken des Archivs genügt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; ./configure&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box curl-7.10.7 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um die Bibliotheken zu installieren. Aktuelle Version is 7.10.7.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Server==&lt;br /&gt;
&lt;br /&gt;
Für WFS-Funktionalität in MapServer ist Unterstützung für GML in der Bibliothek GDAL vonnöten. Wie Sie diese Kombination aktivieren, erfahren Sie im nächsten Abschnitt über die Voraussetzungen für einen WFS-Client. Die GDAL-Version muß mindestens 1.1.8 sein.&lt;br /&gt;
&lt;br /&gt;
Außerdem ist die Projektionsbibliothek ''proj.4''  in mindestens der Version 4.4.3 vonnöten.&lt;br /&gt;
&lt;br /&gt;
==Funktionalität als WFS-Client==&lt;br /&gt;
&lt;br /&gt;
Ein WFS-Client muß etwas mehr können als ein WFS-Server. Unter anderem muß er in der Lage sein, GML zu verarbeiten. GML ist die auf XML-basierende Sprache, in der sich WFS-konforme Systeme 'unterhalten'. Mehr zu GML und natürlich den restlichen WFS-Features sowie zur korrekten Konfiguration im Mapfile finden Sie in Abschnitt~\ref{text:ogc:wfs}.&lt;br /&gt;
&lt;br /&gt;
Die GML-Unterstützung in MapServer wird mit der Bibliothek GDAL realisiert. GDAL verläßt sich bei GML jedoch auf noch eine weitere Bibliothek mit dem Namen Xerces, eine XML-Bibliothek, die Teil des Apache-Projekts ist.&lt;br /&gt;
&lt;br /&gt;
Beim Kompiliervorgang verhält sich diese Bibliothek nicht ganz so, wie man es von einem Mechanismus wie =autoconf=  gewohnt ist. Die Schritte sind wie folgt:&lt;br /&gt;
&lt;br /&gt;
Zuerst muß eine Umgebungsvariable gesetzt werden, die das Verzeichnis des Quellbaums zum Inhalt hat. Am einfachsten ist es, das Archiv auszupacken, in das Verzeichnis zu wechseln und dann&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd xerces-c-src1_6_0&lt;br /&gt;
# export XERCESCROOT=`pwd`&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie danach in das Unterverzeichnis =src=  und führen das Skript =runConfigure=  aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# cd src&lt;br /&gt;
# ./runConfigure -p linux -c gcc -x g++ -r phtread -P /usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter =-p=  gibt dabei die Art des Systems an, die beiden nächsten Optionen bennenen die zu verwendenden Compiler. Mit =-P=  schließlich wird das Verzeichnis für die Installation benannt.&lt;br /&gt;
&lt;br /&gt;
Danach funktionieren =make=  und =make install=  wie gewohnt. Der nächste Schritt hiernach ist, GDAL so einzurichten, dass Xerces für GML benutzt wird. Die Schritte dafür finden Sie in Abschnitt~8 erklärt.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PostGIS==(7)\index{PostGIS}&lt;br /&gt;
&lt;br /&gt;
PostGIS ist eine Erweiterung der freien Datenbank PostgreSQL für räumliche Vektordaten. Um PostGIS kompilieren zu können, müssen Sie Zugriff auf den Quelltextbaum haben, aus dem PostgreSQL kompiliert worden ist. Das reine Entpacken der PostgreSQL-Quellen reicht nicht! Aus offensichtlichen Gründen soll hier keine Zeit damit verbracht werden, auf die Kompilierung von PostgreSQL einzugehen.&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das Verzeichnis ''contrib''  der PostgreSQL-Quellen und entpacken Sie dort das PostGIS-Archiv:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box postgresql-7.3.4 &amp;lt;/math&amp;gt; cd contrib&lt;br /&gt;
root@box contrib &amp;lt;math&amp;gt; tar xzf postgis-0.7.5.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wechseln Sie in das neu entstandene Verzeichnis und editieren Sie eventuell das Makfile:&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
*Setzen Sie die Variable ''USE_PG72''  auf 1, falls Sie PostgreSQL 7.2 anstatt 7.3 verwenden.    &lt;br /&gt;
*Setzen Sie die Variable ''USE_PROJ''  auf 1, falls Sie Unterstützung für proj.4 in PostGIS haben wollen.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;/math&amp;gt; make&lt;br /&gt;
root@box potsgis-0.7.5 &amp;lt;math&amp;gt; make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bevor PostGIS nun speziell für die gewünschte Datenbank in Betrieb genommen werden kann, muß die Prozeduralsprache PL/pgSQL für diese Datenbank aktiviert werden\footnote{Eine Prozeduralsprache (procedural language) stellt Schleifenkonstrukte und andere Kontrollstrukturen zur Verfügung, wo SQL nur Einzelbefehle kennt.}. Das geschieht am besten über das mit PostgreSQL mitgelieferte Skript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun ist diese Datenbank für PostGIS vorbereitet, und die entsprechenden Funktionen und so weiter können in die Datenbank eingelesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;math&amp;gt; psql -f &amp;lt;datenbankname&amp;gt; postgis.sql&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei ''postgis.sql''  finden Sie natürlich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Projektionen}&lt;br /&gt;
&lt;br /&gt;
Wenn Sie möchten, können Sie in Ihrer Datenbank mit PostGIS-Unterstützung eine Tabelle mit EPSG-Codes anlegen, wie sie auch von proj.4 benutzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
root@box ~ &amp;lt;/math&amp;gt; psql -f spatial_ref_sys.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei befindet sich im PostGIS-Quellverzeichnis.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Upgrade}&lt;br /&gt;
&lt;br /&gt;
Natürlich wird auch PostGIS weiterentwickelt. Irgendwann werden Sie dann eine alte Version gegen eine aktuelle austauschen wollen; das kann eventuell etwas schwierig werden. Die Webseite empfiehlt beim Versionswechsel musterhaft folgendes Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# pg_dump -t &amp;quot;*&amp;quot; -f datei.sql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# dropdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createdb &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# createlang plpgsql &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f postgis.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
# psql -f datei.sql -d &amp;lt;datenbankname&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Klartext: Speichern der Datenbank in einer Datei und dann Löschen der Datenbank; dann die Datenbank neu anlegen, PL/pgSQL-Unterstützung aktivieren, das ''neue''  postgis.sql einlesen und die gespeicherten Inhalte der Datenbank dann wieder einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDAL und OGR==(8)&lt;br /&gt;
&lt;br /&gt;
GDAL und OGR sind Bibliotheken, die den Zugriff auf diverse Raster- bzw. Vektordateiformate realisieren. Zu dem Paket gehören auch kleine Utilities, die Sie dazu verwenden können, Informationen über Dateien in den unterstützten Formaten zu gewinnen und teilweise sogar ineinander zu konvertieren. Für MapServer ist natürlich interessant, die entsprechenden Formate als Datenquelle für einen Layer einlesen und teilweise sogar über ein entsprechend definiertes =OUTPUTFORMAT=  auch produzieren zu können. Die neuste Version von GDAL~[[http:website:gdal]] ist im Moment 1.1.9.&lt;br /&gt;
&lt;br /&gt;
Das =configure= -Skript von GDAL ist ziemlich gut darin, sich die Informationen über die installierten Bibliotheken zusammenzusuchen. Grundsätzlich genügt das folgende, bekannte Vorgehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzf gdal-1.1.9.tar.gz&lt;br /&gt;
# cd gdal-1.1.9&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Von besonderer Wichtigkeit ist in diesem Zusammenhang allerdings das Auffinden der XML-Bibliothek Xerces, die für die Unterstützung für GML im MapServer benötigt wird; siehe auch die Abschnitte über WFS-Server und WFS-Client weiter vorne. Falls GDAL nicht in der Lage ist, installierte Bibliotheken korrekt aufzufinden, kann man mit Optionen auf der Kommandozeile beim Konfigurieren nachhelfen. Nach einer gewissen Zeit schreibt man sich dann meist ein kleines Skript, insbesondere, wenn man -- wie der Autor -- gerne mit verschiedenen Dateiformaten experimentiert. Das kann dann zum Beispiel wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-libz=/usr \&lt;br /&gt;
              --with-cfitsio=/usr/local/GIS \&lt;br /&gt;
              --with-png=/usr/local \&lt;br /&gt;
              --with-jpeg=/usr \&lt;br /&gt;
              --with-ogdi=/usr/local/GIS \&lt;br /&gt;
              --with-xerces=/usr/local \&lt;br /&gt;
              --without-jasper \&lt;br /&gt;
              --with-libtiff=/usr/local \&lt;br /&gt;
              --with-geotiff=/usr/local/GIS \&lt;br /&gt;
              --with-grass=/usr/local/GIS&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden praktisch alle Bibliotheken explizit angegeben. Neben der Möglichkeit, installierte Bibliotheken explizit vom Kompilierungsprozess auszunehmen (wie hier geschehen mit der JPEG2000-Bibliothek Jasper) und den vielen verschiedenen Orten, an denen die Bibliotheken zu finden sind, ist in diesem Beispiel insbesondere die Konfiguration mit der TIFF-Bibliothek zu nennen. MapServer ist nur dann in der Lage, Rasterdaten umzuprojizieren, wenn das entsprechende Format lesend von GDAL unterstützt wird. Insbesondere darf dann aber der MapServer selber dann nicht mehr gegen die TIFF-Bibliothek gelinkt werden! Mehr dazu finden Sie weiter unten, wenn es um die Kompilierung des MapServers geht.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für PDF-Output==&lt;br /&gt;
&lt;br /&gt;
Für den PDF-Output bedient sich MapServer der Bibliothek PDFLib~[[http:website:pdflib]].&lt;br /&gt;
&lt;br /&gt;
Auch für diese Bibliothek genügt das simple Vorgehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben der Bibliothek werden auch gleich noch einige Sprachbindungen installiert, sodass Sie die Schnittstellen nicht nur von C-Programmen aus nutzen können, sondern auch gleich von C++, Perl, Python und einigen anderen Sprachen an die Bibliothek herankönnen. Zu den unterstützten Sprachen gehört auch PHP; für diese Skriptsprache wird aber die Schnittstelle während der Kompilierung von PHP erstellt, sodass hier zuerst PDFLib installiert sein muß, und erst später PHP richtig konfiguriert werden muß.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte, dass diese Bibliothek für den kommerziellen Einsatz nicht kostenfrei ist. Details zur Lizensierung der Software finden Sie auf deren Website. Des weiteren hat der Autor bisher noch keine Tests mit der aktuellsten Version 5 der PDFLib vorgenommen, sodass keine Aussage getroffen werden kann, ob sie ebenso reibungslos ihre Arbeit tut, wie die 4er-Versionen.&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Shockwave Flash==(9)\index{Flash}\index{ming}&lt;br /&gt;
&lt;br /&gt;
Für die Erzeugung von Flash-Dateien greift MapServer auf die Bibliothek Ming zurück, die von~[[http:website:ming]] bezogen werden kann.&lt;br /&gt;
&lt;br /&gt;
Nach dem Entpacken läuft die Installation leider nicht mit einem =configure= -Skript ab. Vielmehr existiert nur ein Makefile, an dem Sie aber keine großen Änderungen vornehmen müssen. Lediglich der Präfix für die Installation muß gesetzt werden. Wenn Sie die Bibliothek innerhalb von =/usr=  installiert haben wollen, müssen Sie gar keine Änderung vornehmen.&lt;br /&gt;
&lt;br /&gt;
Danach reicht:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek hat übrigens einige Durststrecken hinter sich, was die Veröffentlichung neuer Versionen anbelangt; genau so eine Durststrecke besteht auch im Moment, denn es ist über ein Jahr seit der letzten Änderung vergangen.&lt;br /&gt;
&lt;br /&gt;
==Kompilieren des MapServers==(10)&lt;br /&gt;
&lt;br /&gt;
Nachdem alle Vorarbeiten erledigt sind, können Sie sich endlich auf das Kompilieren des MapServers stürzen. Entpacken Sie zuerst das Paket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# tar xzvf mapserver-4.0.tar.gz&lt;br /&gt;
# cd mapserver-4.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Verzeichnis können Sie sich alle möglichen Optionen für die Konfiguration ausgeben lassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --help&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Basiskonfiguration benötigen Sie lediglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure --with-gd=/usr/local \&lt;br /&gt;
              --with-proj=/usr/local \&lt;br /&gt;
              --with-freetype=/usr/local&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisangaben sind dabei die Installationsverzeichnisse der Bibliotheken, die Sie je nach Konfiguration Ihres Systems anpassen müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie den MapServer entweder als WMS-Client oder als Server verwenden möchten, benötigen Sie die beiden folgenden Angaben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-wms-server \&lt;br /&gt;
--with-wms-client&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können natürlich beide Dinge gleichzeitig in den MapServer einkompilieren. Funktionalität als WMS-Server wird übrigens stillschweigend vorausgesetzt, sobald Sie die Projektionsbibliothek einbinden.&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung für GDAL beziehungsweise PostGIS aktivieren Sie folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
--with-postgis=/usr/bin/pg_config \&lt;br /&gt;
--with-gdal=/usr/bin/gdal-config&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für PostGIS ist der benötigte Parameter der komplette Pfadname zum PostgreSQL-Konfigurationsprogramm =pg_config= . Die Option für GDAL fragt lediglich nach dem Pfad zum Konfigurationsprogramm =gdal-config= , ohne den Programmnamen selber angeben zu müseen.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie zusätzlich noch PHP MapScript kompilieren möchten, benötigen Sie Zugriff auf den Quelltext der von Ihnen verwendeten PHP-Version. Dann kommen noch diverse Optionen dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
 --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise zu den Einschränkungen, was die Konfiguration von PHP betrifft, finden Sie in einem Abschnitt weiter unten.&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren wird schließlich angestoßen mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie können nun den Bildschirmausgaben eine Weile zusehen.&lt;br /&gt;
&lt;br /&gt;
Wenn der Vorgang reibunglos durchgelaufen ist, finden Sie im Quelltextverzeichnis das fertige Binary. Sie können es mit dem Parameter =-v=  ausführen, um zu sehen, ob alle geforderten Eingenschaften einkompiliert worden sind:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./mapserv -v&lt;br /&gt;
MapServer version 4.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF&lt;br /&gt;
OUTPUT=SWF SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER&lt;br /&gt;
SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT&lt;br /&gt;
INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL&lt;br /&gt;
INPUT=SHAPEFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter sprechen in diesem Beispiel für sich.&lt;br /&gt;
&lt;br /&gt;
Kopieren Sie nun das fertige Binary in das CGI-Verzeichnis Ihres Webservers und Sie sind fertig. Was Sie mit den Zusatzprogrammen machen, die sich ebenfalls im Quelltextverzeichnis befinden, ist im wesentlichen Ihre Sache -- sinnvoll ist es natürlich, sie in ein Verzeichnis zu kopieren, dass sich in der Liste Ihrer =PATH= -Variablen befindet, damit Sie sie von jeder Stelle im Dateisystem aus ausführen können.&lt;br /&gt;
&lt;br /&gt;
=MapScript=&lt;br /&gt;
&lt;br /&gt;
Das Kompilieren von MapScript kann eine Wissenschaft für sich sein. Im folgenden sollen Sie trotzdem den Überblick darüber gewinnen, wie der Vorgang aussieht.&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
&lt;br /&gt;
Vorkompilierte MapScript-Pakete sind eigentlich so gut wie kaum zu finden. Das liegt wahrscheinlich daran, dass die einzelnen Installationen von Webserver und PHP so unterschiedlich sind, dass sich eine Distribution von Binärpaketen kaum lohnen würde.&lt;br /&gt;
&lt;br /&gt;
Die Firma DM Solutions hatte bis vor einiger Zeit noch vorkompilierte Pakete für PHP MapScript auf ihrer Downloadseite, aber für MapServer 4.0 ist dort bis jetzt noch nichts zu finden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
==Aus den Quellen==&lt;br /&gt;
&lt;br /&gt;
Die Installation von MapScript aus dem Quellcode soll -- schon wie bei der Beschreibung des MapServer-Quellcodes weiter oben -- hier für ein Unix-System gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
Beachten Sie bitte auch, dass die PHP-Fassung von MapScript die am besten dokumentierte und am meisten gepflegte Fassung ist.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{PHP}(11)&lt;br /&gt;
&lt;br /&gt;
Zunächst scheint alles ganz einfach zu sein. Das Kompilieren von PHP MapScript ist einfach ein Schalter bei der Kompilierung des MapServers. Wenn Sie also wie in Abschnitt~10 beschrieben vorgehen, können Sie den Parametern einfach einen weiteren hinzufügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# ./configure  [...] --with-php=/usr/src/php-4.3.3&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit geben Sie an, in welchem Verzeichnis die Quellen von PHP liegen.&lt;br /&gt;
&lt;br /&gt;
Eventuell erkennen Sie an dieser Stelle, dass einige Schwierigkeiten auf Sie zukommen. Sollten Sie PHP nicht selber aus den Quellen kompiliert haben, dann haben Sie natürlich auch dieses Verzeichnis nicht. Des weiteren müssen Sie natürlich, wenn Sie PHP aktualisieren, auch MapScript neu bauen. So kann eine Aktualisierung einen ganzen Rattenschwanz weiterer Updates nach sich ziehen, die natürlich beim Selberkompilieren entsprechend aufwendiger sind.&lt;br /&gt;
&lt;br /&gt;
Zwei weitere Einschränkungen müssen Sie außerdem noch kennen. Zum einen funktioniert MapScript im Moment nicht mit einer modularen Version von PHP. PHP ''muß''  als CGI-Programm installiert sein. Wie Sie das bewerkstelligen, entnehmen Sie der PHP-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
Desweiteren muß PHP davon abgehalten werden, seine eigenen Routinen für reguläre Ausdrücke zu verwenden. Das geschieht beim Kompilieren von PHP, indem man =./configure=  den Parameter =--with-regex=system=  mitgibt. Falls diese Option nicht benutzt wird, beschwert sich MapServer bereits beim eigenen =configure= -Vorgang und bricht ab.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass Sie für die Anbindung an PostGIS-Datenbanken keine Unterstützung für PostgreSQL in PHP benötigen. MapScript wird direkt gegen die PostGIS-Bibliotheken gelinkt.&lt;br /&gt;
&lt;br /&gt;
Wie Sie dann mit PHP MapScript arbeiten, ist in Kapitel~\ref{text:mapscript} erklärt.&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Die Anderen}&lt;br /&gt;
&lt;br /&gt;
Die MapScript-Module für andere Programmiersprachen werden anders gehandhabt. Sie werden mithilfe des Interface-Generators SWIG~[[http:website:swig]] erstellt.&lt;br /&gt;
&lt;br /&gt;
Das Konzept von SWIG sieht folgendermaßen aus: Sie erstellen Code, beispielsweise in C. Dieser Code kann wiederum gegen andere Bibliotheken gelinkt sein, wenn Sie möchten. Im Fall von MapScript beispielsweise liegt der MapServer-Code auf verschiedene Dateien verteilt vor, und darüberhinaus wird die Bibliothek GD hinzugelinkt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes erstellt man eine sogenannte Interfacedatei für SWIG, die die Endung =.i=  trägt. Hier definieren Sie, wie die Aufrufe von Funktionen aus der anderen Programmiersprache heraus aussehen soll. So gibt es zum Beispiel in dieser Datei bei der Definition des Layer-Objektes folgende Zeilen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
int queryByRect(mapObj *map, rectObj rect) {&lt;br /&gt;
      return msQueryByRect(map, self-&amp;gt;index, rect);&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nach außen hin sichtbare Methode =queryByRect=  des Layer-Objektes ruft also intern die Funktion =msQueryByRect=  auf. &lt;br /&gt;
&lt;br /&gt;
Im Fall von MapScript wird die Interfacedatei bereits mitgeliefert, sie hat den Namen =mapscript.i= .&lt;br /&gt;
&lt;br /&gt;
\subsubsection*{Perl}&lt;br /&gt;
&lt;br /&gt;
Am Beispiel von Perl soll nun gezeigt werden, wie SWIG sodann im Detail gehandhabt wird. Sie wechseln in das Unterverzeichnis =mapscript/=  in Ihrem MapServer-Quellcodeverzeichnis und führen aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# swig -perl -DSHADOW mapscript.i&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang produziert eventuell einige Warnungen, die jedoch ignoriert werden können.&lt;br /&gt;
&lt;br /&gt;
Sie werden in dem Verzeichnis nun zwei neue Dateien finden: einmal =mapscript_wrap.c= , und dazu eine sprachenabhängige Datei. Im Fall von Perl ist das =mapscript.pm= . Diese beiden Dateien kopieren Sie sich nun in das Unterverzeichnis der Sprache Ihrer Wahl, hier also nach =perl/= .&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie nun selber in dieses Verzeichnis gewechselt sind, können Sie ganz einfach den normalen Vorgang für die Installation eines Moduls in der jeweiligen Sprache anstoßen. Für Perl ist das:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
# perl Makefile.PL&lt;br /&gt;
# make&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spätestens für den letzten Schritt müssen Sie Schreibrechte im Perl-Installationsverzeichnis besitzen.&lt;br /&gt;
&lt;br /&gt;
[[Category:UMN MapServer Handbuch]]&lt;/div&gt;</summary>
		<author><name>Wiki-Kai-Behncke</name></author>
	</entry>
</feed>