Windows QGIS server

QGIS server: come si installa su Windows (e XAMPP)

Installare QGIS server è di per sé molto semplice, ma essendo  implementato come modulo FastCGI del web server Apache, è richiesta un po’ più di attenzione per la sua configurazione che necessita di impostare a mano alcune direttive.

In questo articolo vediamo come farlo per la versione attuale di QGIS server, ovvero la 3.4 (scegliamo la LTR : Long Time Release), su un sistema Windows 10 nel quale ci sia già installato Apache tramite XAMPP (puoi leggere come fare in questo altro articolo).

OSGeo4W

Per installare QGIS server su Windows si adopera l’utility OSGeo4W  già abbastanza nota a chi la usa per installare GIS desktop come QGIS e GRASS; per chi non lo conoscesse, si tratta di un installer che permette di scaricare,  installare o effettuare gli aggiornamenti di diversi software geografici open source nonchè le relative librerie ed eseguibili da linea di comando. La potete trovare sulla pagina di download del sito ufficiale di QGIS (OSGeo4W Network Installer : www.qgis.org/it/site/forusers/download.html) o a questo indirizzo trac.osgeo.org/osgeo4w sia nella versione 32 che 64 bit.

OSGeo4W home page

Dopo aver scaricato l’eseguibile (osgeo4w-setup-x86_64.exe) facendo click su di esso, si avvia il processo che permetterà di recuperare dalla rete (il collegamento ad Internet deve essere attivo) i pacchetti SW o le librerie che avrete scelto ed installarli nel vostro computer. Ci sono 3 modalità di installazione: due automatiche (express) che fanno tutto da sole ed una manuale (advanced) che vi permette di scegliere cosa volete installare. Noi vi consigliamo di usare quest’ultima in modo da installare esattamente solo cosa vi serve, nel nostro caso QGIS server.

OSGeo4W_install_1

Una raccomandazione: poichè QGIS server richiede la presenza di QGIS desktop (altrimenti non funziona correttamente), è importante che anche questo componente venga installato nello stesso PC e che le versioni di entrambi siano uguali. Precisiamo anche che, nel caso ci sia già installato QGIS come applicazione stand-alone, questo non è sufficiente: sia QGIS server che QGIS desktop devono essere installate con OSGeo4W.

Proseguendo con l’esecuzione di OSGeo4W, si susseguono una serie di finestre per la scelta di alcune opzioni (choose a download  source, select root install directory, … etc) per le quali potete anche lasciare i valori di default, fino ad arrivare alla finestra la scelta dei pacchetti da installare:

OSGeo4W_install_2

Per installare QGIS server  (abbiamo detto che scegliamo la LTR) prima bisogna cliccare sul + del gruppo Web e poi cliccare sull’icona (cerchietto con frecce) in corrispondenza della riga con l’indicazione qgis ltr server in modo che scompare la scritta “Skip” e compare il numero della versione più recente(ad oggi è la 3.4.9.1).

Analogamente, per installare anche QGIS desktop LTR, bisogna cliccare sul + del gruppo Desktop e poi sull’icona in corrispondenza di qgis ltr, scegliendo la stessa versione del server(nel nostro caso la 3.4.9.1).

Dopo aver cliccato su “Avanti”, vi compare una schermata come la seguente in cui viene segnalato che ci sono delle dipendenze necessarie; ovviamente confermatene l’installazione.

OSGeo4W Setup - Resolve Dependencies

Quando OSGeo4W avrà terminato, nel vostro sistema  troverete una cartella di nome OSGeo4W64  (nella posizione scelta in precedenza) che contiene tutto il necessario per far funzionare i pacchetti che abbiamo scelto di installare. Non ci interessa capire come sono organizzate e cosa contengono le sue sottocartelle, ma comunque, avendo scelto di installare QGIS server, vi attenzioniamo almeno la presenza di queste due:

  • ./OSGeo4W64/apps/qgis-ltr/;
  • ./OSGeo4W64/httpd.d/ che contiene il file httpd_qgis-ltr.conf;

anche se non sono le sole contengono files adoperati da QGIS server.

OSGeo4W64 folder

Attenzione che in relazione ad altre librerie del vostro Windows, potrebbe succedere che l’installazione segnali questo errore: “non si trova la libreria di sistema MSVCR120.dll” (questa si dovrebbe trovare dentro la cartella C:Windows\System32). Per risolvere il problema in genere basta installare (o reinstallare) il pacchetto C++ redistributable package per Visual Studio 2013.

Modificare la configurazione di Apache

Arrivati a questo punto dobbiamo opportunamente modificare la configurazione del web server Apache per  informarlo sulla presenza di QGIS server. Ricordiamo brevemente che QGIS server è implementato come modulo Fast CGI del web server e le richieste di un client gli arrivano tramite URL del tipo http://nome_dominio.com/cgi-bin/qgis_mapserv.fcgi.exe? …. dove nome_dominio.com indica genericamente il nome del dominio con cui il sistema con il web server è individuabile sul web (può pure essere un indirizzo IP come per es 104.37.129.85 oppure semplicemente localhost se effettuiamo le richieste sulla stessa macchina server).

Per prima cosa quindi, con la direttiva ScriptAlias dobbiamo indicare ad Apache dove si trova il file qgis_mapserv.fcgi.exe. Il file di CONF da modificare è il httpd.conf e lo possiamo accedere in editing tramite il pannello di controllo di XAMPP, come mostra la seguente figura.

apache_config

Nel file httpd.conf andiamo a cercare la riga:

e sostituiamola con la seguente  (eventualmente da modificare in base a dove si trova la cartella OSGeo4W64 nel vostro sistema):

che indica appunto il percorso del file qgis_mapserv.fcgi.exe.

Sempre modificando il file httpd.conf, dobbiamo impostare le opzioni ed i permessi del web server sulla suddetta cartella. Quindi andiamo a cercare il gruppo di righe:

per sostituirle con le seguenti:

Poi, essendo il nostro modulo di QGIS server un file .exe, dobbiamo aggiungere questo tipo di file tra quelli possibili come cgi-script e quindi la riga (sempre dentro il file httpd.conf):

va cambiata in:

Per completare la configurazione di Apache, alla fine del file httpd.conf dobbiamo aggiungere una serie di definizioni di variabili di ambiente (con la direttiva SetEnv) che servono per indicare il percorso, dentro la cartella OSGeo4W, di risorse (quasi sempre librerie) che QGIS server utilizza; quindi aggiungiamo queste righe:

Attenzione a verificare che i percorsi indicati siano effettivamente quelli nel vostro sistema, altrimenti correggeteli opportunamente.

Completate le modifiche al file di configurazione di Apache, ricordatevi sempre che perchè esse abbiano effetto, bisogna riavviare il web server; dal pannello di controllo di XAMPP, basta stopparlo e poi avviarlo nuovamente.XAMPP pannello controllo

Per verificare che tutto è andato a buon fine e che  QGIS server funzioni correttamente, la prima prova semplice da fare è inviare, tramite il browser, una richiesta WMS GetCapabilities e cioè scrivere il seguente URL:

dove abbiamo scritto localhost, perchè stiamo usando il browser presente sulla stessa macchina server; altrimenti metteremo l’indirizzo IP o il nome dominio del web server. La risposta corretta a questa richiesta dovrà essere di questo tipo:

Se invece non si riesce ad accedere al servizio (il modulo FCGI di QGIS server non risponde) o viene segnalato qualche errore, allora qualcosa è andata storta. In genere si sbaglia per disattenzione la scrittura della configurazione nel file httpd.conf  ed in particolare  l’indicazione dei path  giusti, quindi ricontrollate bene.

Pubblichiamo un progetto QGIS

Per ulteriore verifica che QGIS server funzioni correttamente, proviamo a pubblicare un semplice progetto QGIS composto da qualche layer. Per maggiori informazioni su come fare, potete leggere questo nostro precedente articolo che, anche se ormai datato, nei principi resta ancora valido anche per QGIS 3.

Qui precisiamo che il progetto può essere preparato nello stesso PC del server (usando QGIS desktop) oppure anche altrove e poi trasferito sul server: sia il file .ggs (o .qgz) che tutti i files che esso utilizza (layer, immagini, stili, … etc). Per comodità è consigliabile che tutti questi files vengano messi in una stessa cartella.

Altra cosa importante quando create il progetto è che i percorsi siano salvati in modo relativo; questa impostazione la trovate nel quadro delle proprietà generali del progetto.

proprietà progetto QGIS

Per pubblicare un progetto, dobbiamo mettere il suo file nella stessa cartella in cui si trova il modulo FCGI di QGIS server, cioè qgis_mapserv.fcgi.exe; abbiamo già visto che il percorso di questa cartella è C:/OSGeo4W64/apps/qgis-ltr/bin/. La cartella che contiene tutti i files del progetto, va spostata nella stessa posizione relativa di origine rispetto al file .qgs o .qgz.

Come semplice esempio abbiamo costruito un progetto di nome rieti.qgs ed una cartella di nome rieti_data che contiene tutti i files dei suoi layer (due shapefile ed un raster) e li abbiamo spostati dentro la cartella con qgis_mapserv.fcgi.exe :

QGIS server directory

Una volta collocati questi file, automaticamente QGIS server rende disponibili i layer del progetto attraverso la rete con i protocolli WMS, WFS e WCS; ricordatevi che ogni volta che fate aggiunte o modifiche, perché siano effettive bisogna riavviare il web server Apache.

Adesso possiamo provare a rifare una richiesta WMS GetCapabilities per questo dato progetto (rieti.qgs) in questo modo:

Se la pubblicazione del nostro progetto è avvenuta correttamente, nella risposta dovremo trovare, quasi all’inizio,  informazioni generali sul progetto (da noi impostate, quando abbiamo creato il progetto, nelle proprietà generali):

e poi scendendo le informazioni che riguardano i tre layer del progetto:

se questo articolo ti è piaciuto condividilo: