installare Lizmap

Installare Lizmap web client senza problemi

Progetto open source coordinato dalla società francese 3Liz, Lizmap è  attualmente il web client per QGIS server più moderno ed efficiente che c’è; oggi siamo arrivati alla versione 3.2 e il suo gruppo di sviluppo è molto attivo. La sua installazione è abbastanza semplice e anche la documentazione ufficiale sufficientemente chiara; tuttavia, sia per coloro che non hanno molta dimestichezza a configurare delle web application su Apache, sia per chiarire meglio dei passaggi che potrebbere ingenerare dei dubbi, ho scritto questo articolo in cui vi guiderò passo-passo per portare a termine con successo l’installazione di Lizmap!

Prima di cominciare una precisazione.
Gli sviluppatori hanno previsto la possibilità di installare ed usare Lizmap web client sia su sistemi Linux che Windows. Personalmente credo che usare Lizmap su Linux (come altri software open source) sia molto più vantaggioso; innanzitutto per un fatto di prestazioni in quanto, a parità di risorse HW, gestire e pubblicare dei geodati su Linux consente maggiori velocità, soprattutto quando la mole di dati da trattare è elevata. Poi c’è un problema di affidabilità e di potenziali bugs, nel senso che il funzionamento di Lizmap su sistemi Linux è statisticamente meno problematico che su Windows. Questo diventa tanto più vero, quanto più si utilizzano funzionalità avanzate o quando, intervenendo sul codice, si vogliono fare delle modifiche e delle personalizzazioni.

Detto questo, ognuno resti liberi di usare Linux o Windows secondo i propri gusti e la propria esperienza; io comunque qui parlerò dell’installazione su sistemi Debian/Ubuntu, accennando solo alla fine all’installazione su Windows.

Lizmap plugin

La soluzione Lizmap è costituita da due componenti separate, uno è il web client vero e proprio l’altro è il plugin che va installato su QGIS; questo serve per le impostazioni di configurazione da fare sul progetto .qgs che dovrà essere pubblicato usando Lizmap web client. Ma di questo ne ho già parlato in questo  articolo; qui vi ricordo che l’installazione di Lizmap web client è indipendente da quella del suo plugin. Anzi in generale, può essere che QGIS  (QGIS desktop si intende) sia installato su una macchina diversa dal server dove invece si trovano Apache e Lizmap web client.

Per installare il plugin Lizmap, come per un qualunque plugin di QGIS, basta andare nel menù per la gestione dei plugin:

QGIS menù plugin

quindi cercare la sua voce, selezionarlo e poi premere il bottone per installarlo:

lizmap plugin

Quando l’installazione si è conclusa, Lizmap è disponibile sotto la voce del menù web:

lizmap voce menù

Ricordatevi che il plugin funziona, dopo aver aperto o creato un progetto .qgs; altrimenti viene segnalato un errore.

Prerequisiti per l’installazione del web client

Dovrebbe essere sottinteso ed anche ovvio, ma comunque ricordiamolo: Lizmap web client per funzionare richiede che siano già presenti nel sistema: il web server Apache e QGIS server. Quindi se per caso ancora non li avete installati dovete farlo, tanto è vero che la guida ufficiale all’installazione di Lizmap include anche le istruzioni per installare QGIS server.

Anzi a tal proposito, voglio precisare che in tale guida potete trovare i passaggi per installare, oltre a Lizmap web client anche altri componenti,  come per esempio il servizio FTP e il supporto per il database PostgreSQL. Si tratta di componenti utili per la gestione complessiva del sistema “server”, ma non indispensabili per installare Lizmap. Per questo motivo e anche per non creare confusione, qui parlerò strettamente dell’installazione di Lizmap.
Gli altri componenti, quando vi dovessero servire, li potrete installare autonomamente in un secondo momento.

Nel caso in cui non abbiate ancora installato QGIS server, invece conviene farlo prima di installare Lizmap ed eventualmente in questo mio altro articolo trovate una guida. Vi ricordo anche che, se volete verificare velocemente se QGIS server sta funzionando correttamente,  potete fare (sul browser) una generica richiesta WMS GetCapabilities:

e se tutto è ok, deve apparirvi una risposta come la seguente:

WMS Capabilities

Nota bene: QGIS server non è un servizio (o daemon nel linguaggio Linux) sempre attivo in background, ma è un CGI che va in esecuzione solo quando, tramite il web server, arriva una richiesta che lo riguarda.

Installare il PHP

L’altro prerequisito fondamentale per poter installare Lizmap è il supporto per il linguaggio PHP; infatti Lizmap è una web application realizzata principalmente in PHP, usando Jelix 1.6, che è un framework di PHP, insieme a Bootstrap, noto framework per creare front-end per il web.

Potete verificare se nel vostro server Apache è già attiva l’estensione del linguaggio PHP, pubblicando un qualunque file .php e controllando se viene interpretato correttamente. Per esempio qui di seguito ecco il codice di un semplice file che esegue la funzione phpinfo(..) che restituisce sul browser (se il PHP funziona correttamente ) tutta una serie di informazioni sulla versione di PHP che è installato, sulla sua configurazione e le estensioni attive:

Oppure potete digitare a terminale il comando php -v che restituisce informazioni sulla versione del PHP installato e in caso negativo (se ancora non è installato) quali sono i packages già presenti nel vostro sistema che lo contengono.

Tenete conto che Lizmap web client richiede almeno la versione 5.4 di PHP anche se oggi siamo già arrivati alla versione 7 che ovviamente va bene ugualmente.
Esistono diversi package debian/ubuntu che contengono il PHP, dovrete verificare quali sono disponibili per il vostro sistema sulla base delle repository PPA configurate ( quelle indicate nel file /etc/apt/sources.list); nel mio caso ho usato il package libapache2-mod-php che quindi ho installato, dopo un apt-get update, così:

Lizmap richiede anche che siano presenti e attivate alcune estensioni (o moduli) del PHP, che vengono richiamate  nel suo codice; per ricordarne alcune: curl, xmlrpc, gd, sqlite e tokenizer. Molte di queste sono già incluse e attivate nell’installazione standard del PHP, altre invece le dobbiamo installare successivamente.

Per vedere quali sono le estensioni già attive, possiamo usare a terminale il comando php -m:

Due estensioni, non comprese nell’installazione del PHP, che però sono necessarie da subito (altrimenti poi l’installazione di Lizmap non procede) sono quelle di XML e di SqLite 3; per installarle scriviamo allora:

Finito di installare il PHP ed i moduli necessari, ricordiamoci che bisogna riavviare il web server Apache:

Il codice  di Lizmap

Per procedere all’installazione di Lizmap web client, dobbiamo scaricarci tutto il codice dalla sua repository Github: 3liz/lizmap-web-client . Qui trovate anche altre risorse tra cui una guida sintetica  all’installazione (INSTALL.md) che, in modo più conciso, riporta la stessa procedura che sto seguendo in questo articolo.

repository Lizmap

Cliccando sul bottone Download ZIP, scarichiamo tutto e lo scompattiamo (unzip), tenendo conto che in realtà, ciò che è strettamente necessario per il funzionamento di Lizmap web client è contenuto solo nelle tre cartelle: lib, lizmap e temp.

Chiariamo subito una cosa ,trattandosi di una web application in PHP che viene eseguita nell’ambiente Apache, la sua installazione consiste praticamente nel collocare le sue cartelle in una posizione del file-system accessibile al web server (deve avere permessi di lettura, scrittura ed esecuzione) e poi effettuare delle opportune impostazioni di configurazione sia dell’applicazione PHP sia del web server.

Come chiamare la cartella con dentro le sottocartelle lib, lizmap e temp e dove metterla è una vostra scelta libera;  io ho scelto il nome mylizmap e l’ho posizionata nella www-root di Apache, cioè in /var/www/ :

mylizmap

Poichè la cartella /var/www/ ha come proprietario www-data (per chi non lo sapesse www-data è il particolare utente con il quale nei sistemi Linux viene eseguito il web server), per poterci creare dentro la cartella mylizmap, bisogna farlo come superuser (sudo) cioè così:

lo stesso dicasi per spostarci dentro le sottocartelle lib, lizmap e temp scaricate da Github, usando il comando mv (move).

Configurazione ed installazione

Nella sottocartella  lizmap/install/ sono disponibili diversi script; alcuni sono script di shell Linux (terminano .sh) altri sono script PHP (terminano .php) che vanno eseguiti invocando il rispettivo interprete. Per l’installazione noi ne useremo soltanto due (quelli indicati nella fig. seguente):

lizmap install

Innanzitutto  usando lo script set_rights.sh, impostiamo come www-data il gruppo ed il proprietario di alcune sottocartelle e file di lizmap (si trovano dentro la sottocartella lizmap/var/), per assicurare che poi il web server abbia i permessi di scrittura. Per eseguirlo, sempre come superuser,  prima ci spostiamo dentro la directory lizmap/install e poi scriviamo:

Dopo aver eseguito questo script (non ha echo a terminale), possiamo verificare che lo user ed il group di alcune sottocartelle è stato cambiato, passando dal nostro (per es il mio è: ninofor) a www-data:

lizmap set_rights

Il passo successivo consiste nell’impostare i file di configurazione che si trovano nella sub-directory lizmap/var/config; qui troviamo dei template già pronti (finiscono .dist) da usare come base di partenza. Perché essi siano attivi, bisogna però che finiscano .ini.php.

lizmap config

Per fare questo,  dopo esserci spostati dentro la cartella in questione, facciamo delle copie usando il comando cp (copy) per lasciare inalterati gli originali:

Ora usando un semplice text-editor potremmo modificare il loro contenuto secondo le nostre esigenze. Per esempio nel file lizmapConfig.ini.php si può indicare qual’è l’URL di QGIS server e quali sono il repository ed il progetto di default di Lizmap; nel file profiles.ini.php si indicano gli eventuali altri database che si vogliono usare oltre a SqLite. Noi comunque li lasciamo così come sono.

Modifichiamo solo il file localconfig.ini.php, se vogliamo usare la repository di demo inclusa nell’installazione di Lizmap; allora al suo interno dobbiamo aggiungere dopo “put here configuration variables that are specific to this installation;” le seguenti righe:

[modules]
lizmap.installparam=demo

Siamo pronti per concludere l’installazione di Lizmap web client  e per farlo eseguiamo lo script PHP installer.php. Questo effettua automaticamente una serie di impostazioni sulla base della situazione che trova nel vostro sistema (dove avete messo Lizmap, dove si trova QGIS server, dove sono le repository, … etc) risparmiandoci di farlo manualmente; utilissimo specie per chi è poco pratico! Per esempio esso imposta i valori anche di alcune voci nei file di configurazione .ini.php che abbiamo preparato prima.

Comunque non è importante sapere esattamente cosa fa installer.php, soltanto spostatevi nuovamente dentro la sottocartella  lizmap/install ed eseguitelo scrivendo:

vedrete scorrere a terminale il log delle operazioni che vengono via via effettuate:

Se per caso ci sono dei problemi ( … configurazione sbagliata o moduli PHP mancanti) l’installer si interrompe e segnala cos’è che non va; in questo caso dovete correggere il problema e poi rieseguirlo. Se è tutto a posto, l’esecuzione arriva alla fine è si chiude con il messaggio “installation ended“.

Per concludere, affinché tutte le impostazioni  fatte abbiano effetto, non dimentichiamoci di riavviare Apache.

Apriamo Lizmap

Per visualizzare Lizmap web client  scriviamo nella barra indirizzi del browser, l’URL che corrisponde alla sua posizione e precisamente alla sua homepage: il file /var/www/mylizmap/lizmap/www/index.phpInutile dire che la parte a monte dell’indirizzo (cioè /var/www/mylizmap) dipenderà da dove avete messo la cartella di lizmap; questo è ovviamente nel mio caso.

Allora l’URL per aprire Lizmap è http://localhost/mylizmap/lizmap/www  se lo usiamo nello stesso server di produzione (localhost) o più in generale, se al nostro server è associato il dominio “www.mio_sito.com”, sarà pubblico all’indirizzo http://www.mio_sito.com/mylizmap/lizmap/www.

Quasi certamente, appena scrivete questo indirizzo, vi viene restituito il seguente messaggio di errore:

url not found

ed è normale, perchè il web server non sa come tradurre questo URL nella corrispondente posizione di mylizmap nel file-system.

Risolvere questo inconveniente è molto semplice e chi è pratico dei web server la conosce bene; bisogna modificare la configurazione di Apache (il suo file di CONF) e precisamente configurare un alias. In pratica significa aprire con un qualunque text-editor (come superuser) il file default.conf  (a volte si chiama anche 000-default.conf) che si trova nella cartella /etc/apache2/sites-available/ ed aggiungervi le seguenti righe:

Oltre alla definizione dell’alias vengono impostati i permessi  per la directory mylizmap, poi, dopo aver salvato, come al solito riavviate il web server.

Adesso riscrivendo nel browser l’URL prima indicato, si aprirà finalmente la homepage di Lizmap web client con la repository demo  inclusa nell’installazione  che, se ricordate, abbiamo abilitato modificando il file localconfig.ini.php.

Lizmap homepage

Dentro questa repository abbiamo un solo progetto (Montpellier – Transports); cliccando sul bottone “Load the map” si apre l’interfaccia GIS tipica di Lizmap,  con la vista mappa, il pannello con i suoi layer e tutti gli altri controlli offerti da Lizmap.

Lizmap GUI

Questa è la parte pubblica accessibile a tutti, se invece si clicca su “Connect” (bottone in alto a destra) si accede all’applicativo come utente registrato. Con Lizmap appena installato è disponibile solo l’utente “admin” (con password “admin”), poi una volta fatto il primo accesso, potrete configurare il vostro account (ed eventuali altri) e ovviamente cambiare la password.

Una volta connessi, cliccando su “My account“, si può accedere all’interfaccia web di amministrazione di Lizmap:

Lizmap web admin

Insomma il gioco è fatto, siete pronti per usare il web client e cominciare a pubblicare i vostri progetti QGIS!

Installazione su Windows

Lizmap è una web application PHP da configurare in Apache, perciò non è direttamente dipendente dal S.0. onde per cui la sua procedura di installazione su Windows è sostanzialmente uguale a quella già vista, naturalmente con un file-system  (organizzazione delle cartelle) differente. Quello che cambia abbastanza è l’installazione e configurazione di Apache ed i suoi moduli, PHP compreso, e di QGIS server.

Infatti nella guida all’installazione di Lizmap su Windows , sono riportate anche indicazioni su come installare questi tre componenti; potete vedere che le operazioni da fare sono un po più complesse rispetto a quelle per Linux! Se vi interessa un’alternativa più rapida per installare su Windows un ambiente server completo (Apache + PHP) già configurato, con un semplice installer, potete usare  XAMPP.

Comunque abbiate installato Apache e PHP, un’altra operazione utile da fare è aggiungere il path del PHP nella omonima variabile di sistema di Windows (… capirete dopo il perché):

precisamente dobbiamo accodare (non sostituire) nella variabile PATH il percorso dove si trova il PHP; nel mio caso è C:\Apache24\php-7.2.1, voi ovviamente metterete il vostro. Poi, perché essere certi che le modifiche abbiano effetto, riavviate Windows.

Fatta questa premessa, partiamo dall’assunto di avere già installati e funzionanti Apache + PHP e QGIS server e descriviamo solo i passi per installare Lizmap web client 3.x. Ricordatevi anche che Lizmap richiede siano installati e attivati alcuni moduli del PHP (curl, xmlrpc, gd, xml, sqlite3, …etc), quindi accertatevi che sia così.

Naturalmente dobbiamo innanzitutto scaricare il codice di Lizmap 3 dalla sua repository Github così come abbiamo già visto nel caso Linux; attenzione che nella guida ufficiale è indicato un link da dove scaricare gli “zip” di tutte le versioni di Lizmap e si parla anche di come installare le versioni precedenti alla 3, ma a noi non interessa.

Sempre come fatto prima (installazione su Linux), creiamo una nuova cartella che chiamiamo mylizmap e ci mettiamo dentro le sottocartelle lib,  lizmap e temp che abbiamo scaricato:

mylizmap

Ora dobbiamo spostare mylizmap dentro la directory dov’è stato installato Apache (nel mio caso è C:\Apache24) e abbiamo due possibilità:

  1. metterla direttamente della cartella principale: C:\Apache24\mylizmap;
  2. metterla dentro la cartella htdocs: C:\Apache24\htdocs\mylizmap;

la differenza sta nel modo con cui poi Lizmap web client sarà visibile (ovvero pubblicato) sul web. Nel 1° caso bisognerà configurare un Virtual host, nel 2° caso basterà scrivere l’indirizzo del server seguito da “mylizmap” (per es: http://localhost/mylizmap/…). Potete scegliere la soluzione che preferite, noi qui  consideriamo la 2^ ipotesi (dentro htdocs).

Apache folder

Il passo successivo è la preparazione dei file di configurazione per Lizmap, cioè spostiamoci nella sottocartella lizmap\var\config e creiamo delle copie dei file .ini.php.dst cambiando il suffisso in .ini.php (togliamo .dist):

Vale la stessa cosa già detta nel caso Linux: lasciamo inalterati questi file copiati, tranne localconfig.ini.php, se vogliamo abilitare la repository “demo”, aggiuggendo in esso le righe

[modules]
lizmap.installparam=demo

Ora possiamo eseguire lo script PHP installer.php che si trova dentro la cartella lizmap\install; per farlo apriamo la console dei comandi di Windows (cmd), spostiamoci in questa directory e poi scriviamo: php .\installer.php

Notate che abbiamo invocato l’interprete PHP (php.exe) senza bisogno scrivere tutto il suo path e questo grazie al fatto che prima l’avevamo aggiunto nella variabile di sistema PATH.
Ok, se non ci sono problemi (moduli mancanti) l’installer completa la configurazione di Lizmap web client e alla fine conclude con il messaggio: “installation ended”.

Visto che abbiamo scelto di mettere la cartella mylizmap dentro “htdocs”, per aprire Lizmap sul browser basta scrivere il seguente indirizzo: http://localhost/mylizmap/lizmap/www/

Lizmap www

ovvero, con questa soluzione (mylizmap dentro htdocs) non c’è neanche bisogno di configurare un alias.
C’è invece bisogno di impostare i permessi corretti per la cartella lizmap\www; allora apriamo con un text editor il file CONF di Apache, che in Windows è C:\Apache24\conf\httpd.conf, e aggiungiamo le seguenti righe:

Abbiamo terminato, dopo aver riavviato Apache, che da linea di comando possiamo fare così:

scrivendo nella barra indirizzi del browser l’URL indicato prima, si aprirà la homepage di Lizmap web client.

 

condividi: