Installare Lizmap Web Client su Linux Debian o Ubuntu
Nota
Se volete installare e testare rapidamente Lizmap Web Client in pochi passi, potete seguire queste istruzioni usando Docker e Docker-Compose.
Nota
Nelle distribuzioni Debian, si può lavorare come amministratore ( accedendo con root
), senza usare sudo
al contrario di Ubuntu.
Configurazione generica del server con il server Nginx
Questa documentazione fornisce un esempio per la configurazione di un server con la distribuzione Debian 11. Presumiamo che tu abbia il sistema di base installato e aggiornato.
Avvertimento
Questa pagina non descrive come rendere sicuro il vostro server Nginx. È solo una dimostrazione.
Configurazioni locali
Per semplicità, puoi configurare il server con la codifica UTF-8 di default.
# configure locales
locale-gen fr_FR.UTF-8 #replace fr with your language
dpkg-reconfigure locales
# define your timezone [useful for logs]
dpkg-reconfigure tzdata
apt install ntp ntpdate
Nota
Devi inoltre configurare le altre applicazioni in modo che usino questa codifica di default.
Installare i pacchetti necessari
Avvertimento
Il client web Lizmap 3.6 è basato su Jelix 1.8. È necessario installare almeno la versione 7.4 di PHP. Le estensioni dom, simplexml, pcre, session, tokenizer e spl sono richieste (generalmente sono già attivate in una installazione standard di PHP 7/8)
sudo su # only necessary if you are not logged in as root
apt update # update packages list
apt install curl openssl libssl1.1 nginx-full nginx nginx-common
Su Debian 11 o Ubuntu 20.04 LTS, installa questi pacchetti:
apt install php7.4-fpm php7.4-cli php7.4-bz2 php7.4-curl php7.4-gd php7.4-intl php7.4-json php7.4-mbstring php7.4-pgsql php7.4-sqlite3 php7.4-xml php7.4-ldap php7.4-redis
Configurazione web
Creare un nuovo file /etc/nginx/sites-available/lizmap.conf:
server {
listen 80;
server_name localhost;
root /var/www/html/lizmap;
index index.php index.html index.htm;
# compression setting
gzip_vary on;
gzip_proxied any;
gzip_comp_level 5;
gzip_min_length 100;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript text/json;
location / {
try_files $uri $uri/ =404;
}
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
set $path_info $fastcgi_path_info; # because of bug http://trac.nginx.org/nginx/ticket/321
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $path_info;
fastcgi_param PATH_TRANSLATED $document_root$path_info;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SERVER_NAME $http_host;
}
}
Dovresti dichiarare il nome di dominio lizmap.local da qualche parte (nel tuo /etc/hosts, o nel tuo DNS…), o sostituirlo con il tuo nome di dominio.
Abilita l’host virtuale che hai appena creato:
ln -s /etc/nginx/sites-available/lizmap.conf /etc/nginx/sites-enabled/lizmap.conf
Riavviare Nginx
È necessario riavviare il server Nginx per convalidare la configurazione.
service nginx restart
Abilita geolocalizzazione
La geolocalizzazione automatica fornita da Lizmap si basa sui servizi di Google. Per abilitarlo, il tuo webGIS deve essere posto sotto un protocollo sicuro, come HTTPS. Vedi per maggiori dettagli:
Crea le cartelle per i dati
I file QGIS e altri file della cache saranno memorizzati in queste directory.
mkdir /home/data
mkdir /home/data/cache/
Database spaziale: PostgreSQL
Nota
Questa sezione è opzionale. Si prega di leggere prerequisiti-postgresql.
PostgreSQL e PostGIS possono essere molto utili per gestire dati spaziali in modo centralizzato sul server.
Installazione
Su Debian 11 troverai PostgreSQL 13.
Prima installazione dei pacchetti:
apt install postgresql postgresql-contrib postgis pgtune
Potrebbe essere necessario ricreare il cluster in una nuova installazione per impostare il locale. Puoi saltare questo passaggio se le impostazioni locali sono impostate correttamente o se disponi già di database. Attenzione: queste istruzioni distruggono tutti i database esistenti!
service postgresql stop
pg_dropcluster --stop 13 main
pg_createcluster 13 main --locale fr_FR.UTF8 -p 5432 --start
Ora puoi creare un utente e un database per Lizmap, in Postgresql.
Adatta la configurazione PostreSQL
Useremo pgtune
, un programma di utilità che può generare automaticamente un file di configurazione PostgreSQL adattato alle proprietà del server (memoria, processori, ecc.)
# PostgreSQL Tuning with pgtune
pgtune -i /etc/postgresql/13/main/postgresql.conf -o /etc/postgresql/13/main/postgresql.conf.pgtune --type Web
cp /etc/postgresql/13/main/postgresql.conf /etc/postgresql/13/main/postgresql.conf.backup
cp /etc/postgresql/13/main/postgresql.conf.pgtune /etc/postgresql/13/main/postgresql.conf
nano /etc/postgresql/13/main/postgresql.conf
# Restart to check any problems
service postgresql restart
# If error messages, increase the linux kernel configuration variables
echo "kernel.shmall = 4294967296" >> /etc/sysctl.conf # to increase shred buffer param in kernel
echo "kernel.shmmax = 4294967296" >> /etc/sysctl.conf
echo 4294967296 > /proc/sys/kernel/shmall
echo 4294967296 > /proc/sys/kernel/shmmax
sysctl -a | sort | grep shm
# Restart PostgreSQL
service postgresql restart
Per installare le tabelle Lizmap nel database PostgreSQL (invece di SqLite per impostazione predefinita), si può continuare fino alla prossima sezione qui sotto quando è necessario modificare il file lizmap/var/config/profiles.ini.php
.
Installazione dei sorgenti di Lizmap Web Client
Recupera l’ultima versione stabile disponibile dalla nostra pagina di rilascio su Github.
Avvertimento
Non usare il file ZIP automatico creato da GitHub sul sito web. Usa solo lo ZIP allegato a una release.
Per prima cosa impostiamo alcune variabili per facilitare le istruzioni. Impostiamo la versione e la posizione in cui verrà installato Lizmap. Adatta questi valori alle tue esigenze.
VERSION=3.6.5
LOCATION=/var/www
Quindi puoi installare il file zip:
cd $LOCATION
wget https://github.com/3liz/lizmap-web-client/releases/download/$VERSION/lizmap-web-client-$VERSION.zip
# Unzip archive
unzip lizmap-web-client-$VERSION.zip
# virtual link for http://localhost/lizmap/
ln -s $LOCATION/lizmap-web-client-$VERSION/lizmap/www/ /var/www/html/lizmap
# Remove archive
rm lizmap-web-client-$VERSION.zip
Configurare Lizmap con il supporto del database
Lizmap ha bisogno di un database per memorizzare i propri dati e per accedere ai dati utilizzati nei vostri progetti Qgis, con il suo strumento di editing.
Creare profiles.ini.php
in lizmap/var/config
copiando profiles.ini.php.dist
.
cd lizmap/var/config
cp profiles.ini.php.dist profiles.ini.php
cd ../../..
PostgreSQL
Per la modifica dei livelli PostGIS in Web Client Lizmap, installare il supporto PostgreSQL per PHP. Nessun file di configurazione necessita di essere modificato per modificare i livelli PostgreSQL. Bisogna solo controllare che il server Lizmap possa accedere al database con le credenziali che sono memorizzate nel progetto QGIS (o con un file di servizio PostgreSQL).
apt install php7.4-pgsql
service php7.4-fpm restart
Per i log di Lizmap, gli utenti e i gruppi, possono essere memorizzati in SqLite o PostgreSQL. Per memorizzare queste informazioni in PostgreSQL, seguire queste istruzioni.
In una nuova copia di lizmap/var/config/profiles.ini.php
, dovresti avere:
[jdb:jauth]
driver=sqlite3
database="var:db/jauth.db"
[jdb:lizlog]
driver=sqlite3
database="var:db/logs.db"
Questa è la configurazione di default per usare Sqlite. Dovresti cambiare queste sezioni per usare Postgresql, e indicare diversi parametri per accedere al tuo database Postgresql:
[jdb:jauth]
driver=pgsql
host=localhost
port=5432
database="your_database"
user=my_login
password=my_password
search_path=public
[jdb:lizlog]
driver=pgsql
host=localhost
port=5432
database="your_database"
user=my_login
password=my_password
search_path=public
È possibile utilizzare uno schema specifico per memorizzare le tabelle di lizmap. E potreste desiderare che lizmap possa accedere ad altri schemi. Dovete quindi impostare il search_path correttamente. Esempio:
search_path=lizmap,my_schema,public
Se avete impostato un file di servizio per postgresql sul vostro server, potreste voler indicare un servizio postgresql invece di indicare login, password e così via. Usate quindi il parametro service:
[jdb:jauth]
driver=pgsql
service=my_service
database="your_database"
search_path=lizmap,public
[jdb:lizlog]
driver=pgsql
service=my_service
database="your_database"
search_path=lizmap,public
Spatialite
Abilita estensione Spatialite
Per usare l’editing sui livelli spatialite, dovete aggiungere l’estensione spatialite in PHP. Potete seguire queste istruzioni per farlo: http://www.gaia-gis.it/gaia-sins/spatialite-cookbook-fr/html/php.html
Lizmap Web Client verifica se il supporto spatialite è abilitato in PHP. Se non lo è, allora i livelli spatialite non saranno utilizzati nello strumento di editing. È sempre possibile utilizzare i dati PostgreSQL per l’editing.
Imposta diritti appropriati alla cartella che contiene i databases Spatialite
Affinché Lizmap Web Client possa modificare i dati contenuti nei database Spatialite, dobbiamo assicurarci che l’utente del webserver (www-data) abbia accesso in scrittura alla directory contenente ogni file Spatialite
Per esempio, se una directory contiene un progetto QGIS, che utilizza un database Spatialite posto in una directory db allo stesso livello del progetto QGIS:
/path/to/a/lizmap_directory
|--- mon_projet.qgs
|--- bdd
|--- my_spatialite_file.sqlite
Quindi dovete dare i diritti in questo modo:
chown :www-data /path/to/a/lizmap_directory -R
chmod 775 /path/to/a/lizmap_directory -R
Nota
Quindi se si vuole installare Lizmap per fornire accesso a più editori di mappe, si dovrebbe dire loro di creare sempre una directory db allo stesso livello dei progetti QGIS nella directory Lizmap Web Client. Questo faciliterà il lavoro dell’amministratore che deve solo cambiare i diritti di questa unica directory.
Configurare Lizmap e lanciare il programma di installazione
Dai gli appropriati diritti alle cartelle e ai file
Impostare i diritti per Nginx/Apache, cosicché gli script PHP possano scrivere alcuni file temporanei o fare modifiche.
cd /var/www/lizmap-web-client-$VERSION/
lizmap/install/set_rights.sh www-data www-data
Configurazione dell’installazione
Create lizmapConfig.ini.php
, localconfig.ini.php
e modificateli per impostare i parametri specifici della vostra installazione. Potete modificare lizmapConfig.ini.php
per impostare l’url di qgis map server e altre cose.
cd lizmap/var/config
cp lizmapConfig.ini.php.dist lizmapConfig.ini.php
cp localconfig.ini.php.dist localconfig.ini.php
cd ../../..
Lanciare il programma di installazione
Dopo aver creato i file di configurazione, potete lanciare il programma di installazione
php lizmap/install/installer.php
Finirà l’installazione e creerà tutte le tabelle SQL necessarie a Lizmap.
Aggiunta di alcuni progetti dimostrativi
Se vuoi testare Lizmap con alcuni progetti dimostrativi, devi installare unzip
e wget
o curl
.
lizmap/install/reset.sh --keep-config --demo
Primo test
Per testare lanciare: http://localhost/lizmap
nel vostro browser.
Se ottieni un errore 500 - internal server error
, riesegui:
cd /var/www/lizmap-web-client-$VERSION/
lizmap/install/set_rights.sh www-data www-data
Nota
Sostituisci «localhost» con l’indirizzo o il numero IP del tuo server
Nel pannello di amministrazione, dovreste controllare la QGIS server version e la WMS server URL con l’URL di QGIS Server.
Avvertimento
Prima di provare a far funzionare un progetto QGIS in Lizmap, è necessario che la comunicazione tra QGIS Server e Lizmap Web Client funzioni correttamente. Le versioni dei plugin del QGIS Server devono essere visibili dall’interfaccia di amministrazione. Si prega di leggere Lizmap QGIS Server plugins.
Se non avete installato la demo, potete controllare di aver ben installato Lizmap e configurato QGIS Server all’interno di Lizmap controllando la sezione qgis_server
in questo URL: http://localhost/lizmap/index.php/view/app/metadata
{
"qgis_server":{
"test":"OK",
"mime_type":"text\/xml; charset=utf-8"
}
}
Lizmap è accessibile, senza ulteriori configurazioni, anche come WMS e WFS del server da un browser:
e da QGIS:
http://localhost/lizmap/index.php/lizmap/service/?repository=montpellier&project=montpellier&
Nota
L’accesso ai servers WMS e WFS può essere limitato assegnando privilegi alle repositories specifiche, vedi la sezione di amministrazione.
Moduli Lizmap
In precedenza, abbiamo spiegato come possiamo aggiungere i plugin di QGIS Server per aggiungere più funzioni a QGIS Server. Ora che abbiamo il Lizmap Web Client attivo e funzionante, possiamo aggiungere alcuni moduli Lizmap per aggiungere ancora alcune funzionalità.
La lista è disponibile nella Lizmap<additional_lizmap_modules>`. Sul loro repository GitHub, di solito ci sono le loro istruzioni di installazione. Dovresti seguirle. Comunque qui ci sono le istruzioni principali per installare un modulo.
Installare moduli con Composer
Puoi installare i moduli con Composer, il gestore di pacchetti per PHP. Naturalmente è possibile solo se l’autore del modulo ha creato un pacchetto del suo modulo. Un tale pacchetto ha un nome, per esempio lizmap/lizmap-pgmetadata-module`. La documentazione del modulo dovrebbe indicarlo.
Dovete installare Composer. Vedere le istruzioni sul suo sito web http://getcomposer.org.
Dovete creare un file composer.json
in lizmap/my-packages/
copiando il composer.json.dist
da questa directory. E lanciando per la prima volta Compose
cp -n lizmap/my-packages/composer.json.dist lizmap/my-packages/composer.json
composer install --working-dir=lizmap/my-packages
In seguito si può installare il pacchetto del modulo
composer require --working-dir=lizmap/my-packages "lizmap/lizmap-pgmetadata-module"
Se vuoi installare una nuova versione del modulo, esegui:
composer update --working-dir=lizmap/my-packages
Leggete la documentazione del modulo per sapere se ci sono passi aggiuntivi per configurarlo.
Dovrai almeno lanciare il configuratore del modulo con questo comando:
php lizmap/install/configurator.php name_of_the_module
# example:
php lizmap/install/configurator.php pgmetadata
Per finire l’installazione, eseguite nuovamente il programma di installazione di Lizmap:
php lizmap/install/installer.php
lizmap/install/clean_vartmp.sh
lizmap/install/set_rights.sh
installare moduli senza Composer
Per installare un modulo senza Composer, recupera il file zip del modulo.
Estrai il modulo in
lizmap/lizmap-modules/
. Per esempio, per il moduloPgMetadata
:
$ ls -hl lizmap/lizmap-modules/pgmetadata/
total 44K
drwxrwxr-x 2 etienne etienne 4,0K nov. 17 12:38 classes
drwxrwxr-x 2 etienne etienne 4,0K nov. 4 12:50 controllers
drwxrwxr-x 2 etienne etienne 4,0K nov. 4 10:09 daos
-rw-rw-r-- 1 etienne etienne 146 nov. 4 10:38 events.xml
drwxrwxr-x 2 etienne etienne 4,0K nov. 4 10:09 forms
drwxrwxr-x 2 etienne etienne 4,0K nov. 4 12:50 install
drwxrwxr-x 4 etienne etienne 4,0K nov. 4 10:09 locales
-rw-rw-r-- 1 etienne etienne 789 nov. 19 16:02 module.xml
drwxrwxr-x 2 etienne etienne 4,0K nov. 4 10:09 templates
-rw-rw-r-- 1 etienne etienne 106 nov. 4 10:39 urls.xml
drwxrwxr-x 2 etienne etienne 4,0K nov. 17 12:38 www
Leggete la documentazione del modulo per sapere se ci sono passi aggiuntivi per configurarlo.
Dovrai almeno lanciare il configuratore del modulo con questo comando:
php lizmap/install/configurator.php name_of_the_module
# example:
php lizmap/install/configurator.php pgmetadata
Eseguire l’installazione :
php lizmap/install/installer.php
lizmap/install/clean_vartmp.sh
lizmap/install/set_rights.sh