QGIS Server auf Windows 2008 R2

Basierend auf den Tutorials von Anita Graser (http://anitagraser.com/2012/04/06/qgis-server-on-windows7-step-by-step/) und dem QGIS Projekt Wiki (http://hub.qgis.org/projects/quantum-gis/wiki/qgis_server_tutorial) sowie einigen Foreneinträgen, die ich zu dem Thema gefunden habe möchte ich für alle, die nur Windowsserver zur Verfügung haben und der englischen Sprache nur rudimentär oder überhaupt nicht mächtig sind (dies sind wohl insbesondere kommunale Anwender) meine gestrigen Erfahrungen kurz zusammenfassen.

1) Über den OSGeo4W Installer QGIS Desktop, QGIS Server und Apache Webserver installiert. Ich habe zunächst den 64 Bit Installer verwendet, musste aber feststellen, dass dieser den Apache nicht enthält, also den 32 Bit Installer verwenden. Man kann natürlich die Sachen alle auch jede für sich genommen installieren, der Konfigurationsaufwand ist dann aber ungleich höher und auch fehleranfälliger.

2) In der Konfigurationsdatei des Apache unter

C:\osgeo4w\apache\conf\httpd.conf

ist

Listen 80

bereits eingetragen. An dieser Stelle war also nichts zu ändern. Im Browser sollte

http://localhost/ bzw. http://127.0.0.1/

also bereits funktionieren.

apache_works

(Installiert man den Apache für sich, steht da nur “It works!”)

3) Der Versuch, QGIS unter Windows 2008 R2 SP1 als FastCGI laufen zu lassen führt zu einem weissen Browserfenster und folgenden Meldungen im Fehlerlog des Apacheservers:

[Wed Jan 20 09:35:07 2016] [warn] [client 127.0.0.1] (OS 109)Die Pipe wurde beendet. : mod_fcgid: get overlap result error
[Wed Jan 20 09:35:07 2016] [error] [client 127.0.0.1] Premature end of script headers: qgis_mapserv.fcgi.exe

Hierzu gibt es in der Apache Lounge einen Foreneintrag: https://www.apachelounge.com/viewtopic.php?t=4168. Die Problemlösung habe ich momentan allerdings nicht weiter verfolgt, sondern wie im QGIS Projektwiki beschrieben in der Konfigurationsdatei

C:\osgeo4w\httpd.d\httpd_qgis.conf

fcgid durch cgi ersetzt (Texteditor, ersetzen…).

An der fcgi-Problematik arbeite ich aber weiter.

4) Im Wiki wird empfohlen, in der

C:\osgeo4w\httpd.d\httpd_qgis.conf

DefaultInitEnv durch SetEnv zu ersetzen. Tut man das nicht, gibt es schon beim Versuch, den Apache-Dienst zu starten eine Fehlermeldung:

apache_start_error_setenv

Auch hier muss ich noch nach den Gründen forschen, lasse das aber erstmal so stehen.

5) Es besteht offenbar keine Einigkeit darüber, welche dll’s noch in das Verzeichnis

C:\OSGeo4W\apps\qgis\bin

gehören. Ich habe der Einfachheit halber (Zeitmangel…) alle dll’s aus

C:\OSGeo4W\apache\bin

und

C:\OSGeo4w\bin

in das Verzeichnis kopiert. Das ist sicherlich nicht notwendig, aber ein schneller Workaround.

6) An dieser Stelle SOLLTE die URL http://localhost/qgis/qgis_mapserv.fcgi.exe?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities bereits funktionieren, ABER:

apache_start_error_500

Also: Fehlerlog unter die Lupe nehmen (C:\OSGeo4W\apache\logs\error.log). Hier findet man die Zeile

[Tue Jan 19 15:13:12 2016] [error] [client 127.0.0.1] ImportError: No module named site\r

Das liest sich wie ein Python-Problem (site-packages?). Abhilfe schaffen hier die Einträge

SetEnv PYTHONHOME "C:\OSGeo4W\apps\Python27"
SetEnv PYTHONPATH "C:\OSGeo4W\apps\qgis\python"

in der schon bekannten Konfigurationsdatei

C:\osgeo4w\httpd.d\httpd_qgis.conf.

Der GetCapabilities-Request liefert so schon mal wenigstens keine Fehlermeldung mehr.

7) Ein QGIS-Projekt wurde erzeugt und in das Verzeichnis

C:\OSGeo4W\apps\qgis\bin

gespeichert.

qgis_server_projekt

Der URL kann dann einfach die Option ‘map=[projektname]’ hinzugefügt werden. So können beliebig viele Projekte verwaltet werden. In diesem Beispiel:

http://localhost/qgis/qgis_mapserv.fcgi.exe?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities&map=test_alkis.qgs

qgis_server_getcapabilities

Hinweis: Dieses Projekt enthält Daten aus einer PostgreSQL/PostGIS-DB. Hier muss in der Datenbankverbindung Nutzername und Passwort gespeicht werden, sonst kann der QGIS Server auf die Daten nicht zugreifen.


Quellen:

QGIS-Logo: Autor: http://www.qgis.org/wiki/User:Anitagraser, Quelle: http://www.qgis.org/wiki/File:QGis_Logo.png (CC-BY-SA 3.0)

ApplicationServer-Icon: Autor: https://openclipart.org/user-detail/ujmoser, Quelle: https://openclipart.org/download/182736/application-server.svg (Public Domain)

(Letzter Zugriff am 20.1.2016)