Installare Lizmap Web Client su Linux Debian o Ubuntu
Nota
Se vuoi installare e testare velocemente Lizmap Web Client in pochi passi, puoi seguire queste istruzioni.
Configurazione generica del server con il server Nginx
Questa documentazione fornisce un esempio per configurare un server con la distribuzione Debian 9. Si presume che il sistema di base sia 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 è basato su Jelix 1.6. Devi installare almeno la versione 5.6 di PHP. Le estensioni dom, simplexml, pcre, session, tokenizer e spl sono richieste (sono generalmente attivate in una installazione standard di PHP 5.6/7.x)
sudo su # only necessary if you are not logged in as root
apt update # update package lists
apt-get install curl openssl libssl1.1 nginx-full nginx nginx-common
Su debian 10, installare questi pacchetti:
apt-get install php7.3-fpm php7.3-cli php7.3-bz2 php7.3-curl php7.3-gd php7.3-intl php7.3-json php7.3-mbstring php7.3-pgsql php7.3-sqlite3 php7.3-xml php7.3-ldap
Su Ubuntu 18.04 o successivo, installate questi pacchetti:
apt-get install php7.3-fpm php7.3-cli php7.3-bz2 php7.3-curl php7.3-gd php7.3-intl php7.3-json php7.3-mbstring php7.3-pgsql php7.3-sqlite3 php7.3-xml php7.3-ldap
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.3-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
Configurazione Generica del Server con il server Apache2
Per installare QGIS-server su apache fate riferimento alla documentazione ufficiale di QGIS https://docs.qgis.org/latest/en/docs/server_manual/index.html
Installare i pacchetti necessari
Avvertimento
Il web client Lizmap si basa su Jelix 1.6. Devi installare almeno la versione 5.4 di PHP. Le estensioni dom, simplexml, pcre, session, ** tokenizer** e spl sono richieste (generalmente sono attive nell’installazione standard di PHP 5.4)
Nota
Almeno la versione attuale supporta PHP 7, quindi dovrebbe essere semplice installarla sull’attuale debian 9 o ubuntu 16.04.
sudo su # only necessary if you are not logged in as root
apt update # update package lists
Su debian 10, installare questi pacchetti:
apt install php7.3-fpm php7.3-cli php7.3-bz2 php7.3-curl php7.3-gd php7.3-intl php7.3-json php7.3-mbstring php7.3-pgsql php7.3-sqlite3 php7.3-xml php7.3-ldap
Su Ubuntu 18.04 LTS
apt install xauth htop curl libapache2-mod-fcgid libapache2-mod-php7.3 php7.3-cgi php7.3-gd php7.3-sqlite php7.3-curl php7.3-xmlrpc python-simplejson software-properties-common
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:
Riavviare Nginx
È necessario riavviare il server Nginx per convalidare la configurazione.
service nginx restart
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/
# optional
mkdir /home/data/ftp
mkdir /home/data/ftp/template/
mkdir /home/data/ftp/template/qgis
Database spaziale: PostgreSQL
Nota
Questa sezione è opzionale, ma necessaria se vuoi abilitare le capacità di editing su un livello. Vedi Prerequisiti.
PostgreSQL e PostGIS possono essere molto utili per gestire dati spaziali in modo centralizzato sul server.
Installazione
# Install packages
apt-get install postgresql postgresql-contrib postgis pgtune
# A cluster is created in order to specify the storage directory
mkdir /home/data/postgresql
service postgresql stop
pg_dropcluster --stop 9.6 main
chown postgres:postgres /home/data/postgresql
pg_createcluster 9.6 main -d /home/data/postgresql --locale fr_FR.UTF8 -p 5678 --start
# Creating a "superuser" user
su - postgres
createuser myuser --superuser
# Modifying passwords
psql
ALTER USER postgres WITH ENCRYPTED PASSWORD '************';
ALTER USER myuser WITH ENCRYPTED PASSWORD '************';
\q
exit
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/9.6/main/postgresql.conf -o /etc/postgresql/9.6/main/postgresql.conf.pgtune --type Web
cp /etc/postgresql/9.6/main/postgresql.conf /etc/postgresql/9.6/main/postgresql.conf.backup
cp /etc/postgresql/9.6/main/postgresql.conf.pgtune /etc/postgresql/9.6/main/postgresql.conf
nano /etc/postgresql/9.6/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 increas 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
FTP Server: pure-ftpd
Nota
Questa sezione è opzionale
Installazione
apt-get install pure-ftpd pure-ftpd-common
Configura
# Creating an empty shell for users
ln /bin/false /bin/ftponly
# Configuring FTP server
echo "/bin/ftponly" >> /etc/shells
# Each user is locked in his home
echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone
# Allow to use secure FTP over SSL
echo "1" > /etc/pure-ftpd/conf/TLS
# Configure the properties of directories and files created by users
echo "133 022" > /etc/pure-ftpd/conf/Umask
# The port range for passive mode (opening outwards)
echo "5400 5600" > /etc/pure-ftpd/conf/PassivePortRange
# Creating an SSL certificate for FTP
openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
chmod 400 /etc/ssl/private/pure-ftpd.pem
# Restart FTP server
service pure-ftpd restart
Crea un accesso utente
# Creating a user accountr
MYUSER=demo
useradd -g client -d /home/data/ftp/$MYUSER -s /bin/ftponly -m $MYUSER -k /home/data/ftp/template/
passwd $MYUSER
# Fix the user's FTP root
chmod a-w /home/data/ftp/$MYUSER
# Creating empty directories that will be the future Lizmap Web Client directories
mkdir /home/data/ftp/$MYUSER/qgis/rep1 && chown $MYUSER:client /home/data/ftp/$MYUSER/qgis/rep1
mkdir /home/data/ftp/$MYUSER/qgis/rep2 && chown $MYUSER:client /home/data/ftp/$MYUSER/qgis/rep2
mkdir /home/data/ftp/$MYUSER/qgis/rep3 && chown $MYUSER:client /home/data/ftp/$MYUSER/qgis/rep3
mkdir /home/data/ftp/$MYUSER/qgis/rep4 && chown $MYUSER:client /home/data/ftp/$MYUSER/qgis/rep4
mkdir /home/data/ftp/$MYUSER/qgis/rep5 && chown $MYUSER:client /home/data/ftp/$MYUSER/qgis/rep5
# Create a directory to store the cached server
mkdir /home/data/cache/$MYUSER
chmod 700 /home/data/cache/$MYUSER -R
chown www-data:www-data /home/data/cache/$MYUSER -R
Installazione dei sorgenti di Lizmap Web Client
cd /var/www/
Con ZIP file
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.
cd /var/www/
# Options
VERSION=3.4.0
# Archive recovery with wget
wget https://github.com/3liz/lizmap-web-client/releases/download/$VERSION/lizmap-web-client-$VERSION.zip
# Unzip archive
unzip $VERSION.zip
# virtual link for http://localhost/lizmap/
ln -s /var/www/lizmap-web-client-$VERSION/lizmap/www/ /var/www/html/lizmap
# Remove archive
rm $VERSION.zip
Versione di sviluppo con Git
Avvertimento
La versione di sviluppo è sempre in evoluzione e può presentare bugs. Non usarla in produzione.
Avvertimento
Usando il codice da GIT, sia dal git clone
che dallo ZIP automatico creato da GitHub al volo, bisogna prima costruire il pacchetto. Non è possibile usare questo codice direttamente. Se non si vuole costruire, si devono utilizzare alcuni pacchetti ZIP di Lizmap Web Client che sono pronti per essere installati, come scritto nel passo precedente.
Prima installazione
Il codice sorgente nel repository Git è privo di pacchetti esterni PHP e Javascript. Per installare e compilare alcuni file, è necessario installare PHP Composer, NodeJs e Npm, così come alcuni altri strumenti come Make. Leggi il file CONTRIBUTING.md
, fornito con il codice sorgente, per avere dettagli su come installare questi strumenti e costruire il pacchetto.
apt-get install git
cd /var/www/
VERSION=master
# Clone the master branch
git clone https://github.com/3liz/lizmap-web-client.git lizmap-web-client-$VERSION
# Go into the git repository
cd lizmap-web-client-$VERSION
# Create a personal branch for your changes
git checkout -b mybranch
# Launch PHP Composer, Npm etc, to install external dependencies
make build
Per aggiornare dal repository principale.
cd /var/www/lizmap-web-client-$VERSION
# Check that you are on the branch: mybranch
git checkout mybranch
# If you have any changes, make a commit
git status
git commit -am "Your commit message"
# Save your configuration files!
lizmap/install/backup.sh /tmp
# Update your master branch
git checkout master && git fetch origin && git merge origin/master
# Apply to your branch, marge and manage potential conflicts
git checkout mybranch && git merge master
# Apply rights
chown :www-data temp/ lizmap/var/ lizmap/www lizmap/install/qgis/edition/ -R
chmod 775 temp/ lizmap/var/ lizmap/www lizmap/install/qgis/edition/ -R
Dovresti quindi aggiornare le dipendenze (come i pacchetti PHP e javascript esterni). Vedere il file CONTRIBUTING.md
fornito con il codice sorgente.
Nota
E “sempre bene fare un backup prima di aggiornare.
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 di livelli PostGIS in Web Client Lizmap, installa il supporto di PostgreSQL per PHP.
sudo apt-get install php7.3-pgsql
sudo service nginx restart
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
chown :www-data lizmap/install/qgis/edition/ -R
chmod 775 lizmap/install/qgis/edition/ -R
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 ../../..
Nel caso in cui vogliate abilitare i repository demo, basta aggiungere al localconfig.ini.php
quanto segue:
[modules]
lizmap.installparam=demo
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.
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.
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 volete installare una nuova versione del modulo, basta eseguire:
composer update --working-dir=lizmap/my-packages
Leggete la documentazione del modulo per sapere se ci sono passi aggiuntivi per configurarlo.
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
Modifica il
lizmap/var/config/localconfig.ini.php
, nella sezionemoduli
, aggiungi una nuova linea per il modulo dato (controlla la documentazione del modulo per impostare i valori corretti):
[modules]
pgmetadata.access=2
Leggete la documentazione del modulo per sapere se ci sono passi aggiuntivi per configurarlo.
Eseguire l’installazione :
php lizmap/install/installer.php
lizmap/install/clean_vartmp.sh
lizmap/install/set_rights.sh