MapServer 8.0 (Installation auf Windows)
Bei dieser Installation wurde folgende Software verwendet:
- MapServer 8.0
- Postgre 14
- Oracle 19
In wieweit MapServer 8.0 mit anderen Postgre/Oracle Version lauffähig wurde hier nicht getestet.
Microsoft Visual C++ 2022 Redistributable Package (x64) herunterladen
https://learn.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist?view=msvc-170
dann X64
https://aka.ms/vs/17/release/vc_redist.x64.exe
und installieren.
MapServer herunterladen
https://www.gisinternals.com/release.php aufrufen
auf "release-1930-x64-gdal-3-6-3-mapserver-8-0-0" klicken
dann release-1930-x64-gdal-3-6-3-mapserver-8-0-0.zip
(Compiled binaries in a single .zip package)
MapServer aufsetzen
- Zip-Datei nach (z.B.)
C:\MapServer\
entzippen -> Softwareverzeichnis für den MapServer - alle Dateien aus
C:\MapServer\bin\ms\apps
nachC:\MapServer\bin\
kopieren. - neues Verzeichnis (z.B.)
C:\MapServer\maps
anlegen -> für die Map Dateien - neues Verzeichnis (z.B.)
C:\inetpub\wwwroot\MapServer
anlegen -> wenn man die MapServer Karten im AppBuilder importieren möchte
- Neue Datei
C:\inetpub\wwwroot\MapServer\web.config
anlegen. - Folgenden Inhalt in die Datei kopieren:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers accessPolicy="Read, Execute, Script">
<add name="MapServerFastCgi" path="mapserv.exe" verb="*" type="" modules="FastCgiModule" scriptProcessor="C:\MapServer\bin\mapserv.exe" resourceType="Unspecified" requireAccess="Execute" allowPathInfo="true" preCondition="" />
</handlers>
<caching enabled="true" enableKernelCache="true" />
</system.webServer>
</configuration>
- Neue Datei
C:\MapServer\mapserver.conf
anlegen. - Folgenden Inhalt in die Datei kopieren:
CONFIG
ENV
MS_MAP_PATTERN "."
PROJ_LIB "C:/app/mapserver/bin/proj9/share"
GDAL_DRIVER_PATH "C:/app/mapserver/bin/gdal/plugins"
GDAL_DATA "C:/app/mapserver/bin/gdal-data"
END
MAPS
RASTER "C:/app/maps/Luftbilder.map"
WASSER "C:/app/maps/Wasser.map"
DM_GAS "C:/app/maps/DM_GAS.map"
LASVEGAS "C:/app/maps/LASVEGAS.map"
LASVEGAS.legend C:/app/maps/LASVEGAS.legend.map"
END
PLUGINS
oracle "C:/app/mapserver/bin/ms/plugins/oci/msplugin_oracle.dll"
END
END
Wenn Sie den Eintrag PROJ_LIB
in der mapserver.conf
Datei festlegen,
dann gilt dieser für alle Map-Dateien und muss nicht in jeder einzelnen Map Datei separat angegeben werden.
Der Eintrag MAPS
bringt den Vorteil, dass man nach außen/extern nicht mehr den kompletten Pfad zum MapFile rausgeben muss, sondern nur den Projektnamen verwendet:
Also
- IIS starten und im Baum links den ersten Eintrag (Root Eintrag) wählen.
- Rechts dann Doppelklick auf "FastCGI Settings".
- Rechts auf "Add Application" klicken.
- Bei "Full Path"
C:\MapServer\bin\mapserv.exe
eintragen. - Bei Environment Variables zwei Variablen
MAPSERVER_CONFIG_FILE
undPATH
hinzufügen
MAPSERVER_CONFIG_FILE
: C:\MapServer\mapserver.conf
PATH
: C:\MapServer\bin;C:\Oracle19c\bin
Der Eintrag für den Oracle Pfad ist abhängig von der Installation
und kann beispielsweise auch C:\oracle\product\19.3.0\client_1\bin
oder ähnlich lauten.
Jetzt kann die Einrichtung über einen Aufruf in einem WebBrowser abgesetzt werden:
http://localhost/mapserver/mapserv.exe
Mehr als 2048 Zeichen bei URL zulassen
Wenn Sie Karten mit sehr vielen Layern haben, dann kann die MapServer URL unter Umständen länger als die standardmäßig zugelassenen 2048 Zeichen des IIS werden. Es wird deshalb geraten, den Wert im IIS höher als den Standardwert zu setzen, da es ansonsten zu Fehlermeldungen kommen kann.
IIS -> "Default Web Site" -> Request Filtering -> Register "Query String" "Edit Feature Settings..." "Maximum query string (Bytes)" von 2048 auf 10000 setzen.
MapEdit AppBuilder konfigurieren
- Bei "Karten Server" -> "MapServer" einen neuen Eintrag erzeugen (oder vorhandenen abändern)
Server URL: http://localhost/mapserver/mapserv.exe
Map File Folder: C:\MapServer\maps\
Art des automatischen Speicherns: "Auf MapEdit Server Maschine speichern"
Netzwerkverzeichnis: C:\MapServer\maps\
Statt http://localhost
geben sie bitte die URL ihres Servers ein!!
Unter Karten -> MapServer Karten neue Karte anlegen und testen.
Wenn Fehlermeldungen kommen, dass auf Dateien nicht zugegriffen oder geschrieben werden kann,
dann müssen ggf. Rechte auf C:\MapServer\maps
gegeben werden.
Wenn Änderungen an der Datei mapserver.conf vorgenommen werden, muss der IIS neu gestartet werden. Ansonsten greifen die Änderungen nicht.
Beispieldaten zum Testen der Installation
Beispieldateien zum Testen finden Sie auf dem MuM Software Repository.
Kopieren Sie die Daten aus dem Software Repository nach C:\MapServer\maps\
.
- Öffnen Sie den AppBuilder
- Unter Karten -> MapServer Karten: neue Karte anlegen als name summerlin eingeben.
- Den Inhalt der Datei
C:\MapServer\maps\summerlin.map
in den Editor kopieren. - Speichern drücken und die Vorschaukarte anzeigen.
Die Datei Summerlin.map
enthält Feature Daten direkt als WKT in der Map Datei.
D.h., sie benötigt für dieses Beispiel keinen Datenbank Zugriff und ist zum einfachen
Installationstest des MapServers gedacht.
Weitere Hinweise
Hinweise zum MapFile finden Sie hier:
https://help.mapedit.de/admin-guide/mapedit-appbuilder/map-definitions/map-mapfile
Hinweise zur Einstellung der Datenbankeinstellungen hier:
https://help.mapedit.de/admin-guide/mapedit-appbuilder/map-definitions/map-mapfile#beispiel-einstellungen-f%C3%BCr-verschiedene-datenbankenverbindungseinstellungen