Zum Hauptinhalt springen

MapServer 8.0 (Installation auf Windows)

Hinweis

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 nach C:\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
Hinweis

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 und PATH 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.

Hinweis

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