Requisiti necessari a priori per installare Lizmap Web Client

Nota

Se volete installare e testare rapidamente Lizmap Web Client in pochi passi, potete seguire queste istruzioni usando Docker e Docker-Compose.

Conoscenza circa l’amministrazione del server

L’installazione e la manutenzione di un’istanza del client Web Lizmap richiedono alcune conoscenze sull’amministrazione del sistema.

Dovrai avere familiarità con:

  • installazione di un server web (Nginx, Apache…). Lizmap è scritto in PHP, quindi dovresti avere familiarità con uno stack simile a LAMP. Questa documentazione non coprirà la sezione Apache perché può essere adattata

  • leggere e impostare una variabile d’ambiente

  • comprendere come i processi vengono avviati su un server

  • lettura dei log da stderr per QGIS Server

  • gestire un database PostgreSQL

  • debug delle query HTTP con cURL

Questi concetti non sono spiegati nella documentazione di Lizmap Web Client. La documentazione si concentra solo su parti specifiche relative a Lizmap Web Client.

Dati GIS e file QGS

Lizmap Web Client non impone dove archiviare i dati sul disco. Sei libero di archiviare i tuoi file dove vuoi sul server.

Ad esempio, puoi utilizzare /srv/lizmap/data/. Quindi, quando configuri Lizmap, puoi scegliere la variabile «rootRepositories» per definire i repository root per tutti i tuoi dati. Lizmap Web Client visualizzerà un menu a discesa che mostra le directory nella cartella principale.

Altrimenti, se non vuoi definire un repository root per i tuoi dati GIS, dovrai utilizzare il percorso assoluto quando definisci un nuovo repository Lizmap. Non ci sarà un menu a discesa ma un campo di testo.

Nota

Lizmap Web Client non fornisce alcun trasferimento di file dal desktop QGIS al server. Devi impostare il tuo modo per trasferire file tra il tuo computer e il tuo server.

QGIS Server

Avvertimento

Prima di installare la parte QGIS Server, è altamente consigliato di usare la stessa versione tra QGIS Desktop e QGIS Server.

Anche se alcune funzioni potrebbero funzionare, c’è la probabilità che qualche configurazione non funzioni se queste due versioni sono differenti.

La ragione è che QGIS Server versione X potrebbe non essere compatibile con un progetto QGIS fatto con un QGIS Desktop versione Y.

Segui la documentazione di QGIS Server su come installare QGIS Server.

Usando un webserver (Apache o Nginx), dovete installare QGIS Server. Con Nginx, il modo migliore è usare spawn-fcgi. Non non usare il fcgiwrap, questa soluzione non è efficiente.

Nella configurazione di Nginx, è bene usare la variabile QGIS_OPTIONS_PATH per una cartella con permessi di scrittura per www-data. Questo è spiegato nella documentazione del server QGIS.

Dovresti anche installare e configurare XVFB menzionato nella Documentazione QGIS. Questo è utile per stampare i PDF. Puoi saltare questa sezione solo se non hai intenzione di stampare PDF sul lato server.

Dopo aver impostato il vostro server web con QGIS-Server, controllate che l’URL di QGIS Server funzioni. Probabilmente otterrete un XML come:

<ServerException>Project file error</ServerException>

Conservate questo URL, lo useremo più tardi nel pannello di amministrazione di Lizmap.

Avvertimento

Noi raccomandiamo vivamente di impostare il QGIS Server su un host virtuale diverso dal Lizmap Web Client. L’URL del QGIS Server dovrebbe rimanere privato, accessibile solo dall’applicazione PHP Lizmap soltanto.

Altrimenti, specialmente dopo l’installazione del plugin Lizmap su QGIS Server, il vostro utente potrebbe essere in grado di accedere a dati privati se bypassano Lizmap, usando direttamente l’URL di QGIS Server.

QGIS Server plugins

Alcuni plugin possono essere aggiunti a QGIS Server. Controlla la documentazione di QGIS Server sui plugin sul lato server.

Avvertimento

Il plugin Lizmap server è richiesto.

I plugin elencati di seguito abiliteranno alcune funzionalità in Lizmap Web Client.

O dovresti impostare la variabile d’ambiente QGIS_PLUGINPATH durante l’installazione di QGIS Server o usare quella predefinita fornita da QGIS.

Suggerimento

Per gestire i plugin di QGIS Server, vi incoraggiamo ad usare qgis-plugin-manager, uno strumento CLI per installare e aggiornare i plugin. https://pypi.org/project/qgis-plugin-manager/

Suggerimento

Cerca altri plugin del server QGIS nel repository ufficiale.

Ma installa solo i plugin di cui hai bisogno tu. Sul server QGIS, i plugin sono come ganci nel server QGIS, possono alterare l’input o l’output del server QGIS. Possono produrre risultati inaspettati se non sai come funziona il plugin. Si prega di fare riferimento alla rispettiva documentazione.

Lizmap QGIS Server plugins

Il plugin Lizmap QGIS Server è richiesto e aggiungerà alcune funzionalità a Lizmap Web Client:

  • recuperare informazioni dal server QGIS.

  • valuta QGIS Expressions nei moduli su:

    • vincoli

    • valore predefinito

    • visibilità del gruppo

    • Leggere Form avanzato.

  • controllare i diritti di accesso degli utenti (ACL) per elementi e livelli :

    • filtro per per poligono

    • per attributo

  • utilizzare il Form popup, leggere QGIS Drag&Drop Form popup.

  • abilitare le variabili @lizmap_user e lizmap_user_groups nei progetti QGIS

Installazione
QGIS Lato Server

Controlla la documentazione di QGIS Server sui plugin sul lato server.

Il plugin del server Lizmap, chiamato Lizmap server, è richiesto e nella cartella corretta per QGIS Server.

Con QGIS-Plugin-Manager:

# Not correct, this plugin is only for QGIS desktop
# qgis-plugin-manager install Lizmap

# Correct, the plugin designed for QGIS server
qgis-plugin-manager install 'Lizmap server'

Avvertimento

È necessario installare il plugin Lizmap server. Il plugin Lizmap è progettato solo per il desktop QGIS. Non mantenerli entrambi sul tuo server.

Per motivi di sicurezza, per abilitare l’API sul lato server QGIS, è necessario abilitare la variabile d’ambiente

QGIS_SERVER_LIZMAP_REVEAL_SETTINGS con il valore impostato su True sul server QGIS.

Questa variabile esporrà le impostazioni del server come la versione del server QGIS, che è usata da Lizmap Web Client.

# Apache FCGI example
FcgidInitialEnv QGIS_SERVER_LIZMAP_REVEAL_SETTINGS True
# nginx fastcgi
fastcgi_param  QGIS_SERVER_LIZMAP_REVEAL_SETTINGS  True;

Avvertimento

Dovete assicurarvi che questa API http://your.qgis.server.url/lizmap/server.json sia protetta sul vostro webserver. Il meglio è limitare l’accesso al server QGIS http://your.qgis.server.url su un host virtuale, non accessibile su internet. Tutte le richieste al server QGIS saranno inviate da Lizmap Web Client. Il server QGIS non deve essere accessibile dall’esterno. Era già fortemente raccomandato in precedenza di proteggere il server QGIS da internet. Gli utenti devono usare i link WFS/WMS forniti da Lizmap Web Client, così Lizmap può controllare i permessi degli utenti.

Pannello di amministrazione

Se state usando QGIS Server con FCGI, l’URL API Lizmap deve essere vuoto.

Altrimenti, se stai utilizzando Py-QGIS-Server, l’URL dell’API Lizmap deve essere configurato nell’interfaccia di amministrazione. In Py-QGIS-Server, devi pubblicare esplicitamente anche l’API.

A partire dalla versione Py-QGIS-Server 1.8.4, è possibile abilitare l’endpoint API Lizmap con la variabile d’ambiente QGSRV_API_ENDPOINTS_LIZMAP=yes altrimenti, aggiungere la configurazione seguente nel file di configurazione:

[api.endpoints]
lizmap_api=/lizmap

[api.enabled]
lizmap_api=yes

Quindi, con Py-QGIS-Server, se il tuo URL per OWS è http://map:8080/ows/, significa che l’URL per l’endpoint API Lizmap è http://map:8080/lizmap/.

PostgreSQL

PostgreSQL può essere utilizzato per tre scopi diversi in Lizmap:

  • Per archiviare dati GIS. Non è necessaria alcuna configurazione sul lato server Lizmap Web Client, solo il server PostgreSQL deve essere accessibile dal server Lizmap Web Client e dal server QGIS. È possibile modificare i layer con Lizmap, ma il layer deve essere archiviato in PostgreSQL. Vedi Prerequisiti.

  • To store Lizmap Web Client users and user actions. This setting must be done when installing Lizmap.

  • Per usare lizmap_search, vedere Ricerca PostgreSQL. Questa impostazione sul server Lizmap può essere impostata quando serve.