Instalace webového klienta Lizmap v systému Linux Debian nebo Ubuntu

Poznámka

Pokud chcete rychle nainstalovat a otestovat Lizmap Web Client v několika krocích, můžete postupovat podle těchto instrukcí pomocí Dockeru a Docker-Compose.

Poznámka

V distribuci Debian můžete na rozdíl od Ubuntu pracovat jako správce (přihlásit se pod root) bez použití sudo.

Obecná konfigurace serveru se serverem Nginx

Tato dokumentace obsahuje příklad konfigurace serveru s distribucí Debian 11. Předpokládáme, že máte nainstalovaný a aktualizovaný základní systém.

Varování

Na této stránce není popsáno, jak zabezpečit server Nginx. Slouží pouze k demonstraci.

Konfigurace místních názvů

Pro zjednodušení je zajímavé nakonfigurovat server s výchozím kódováním UTF-8.

# 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

Poznámka

Pokud tomu tak není, je nutné nakonfigurovat i ostatní software tak, aby používal toto výchozí kódování.

Instalace potřebných balíčků

Varování

Webový klient Lizmap 3.6 je založen na verzi Jelix 1.8. Je nutné nainstalovat alespoň verzi PHP 7.4. Jsou vyžadována rozšíření dom, simplexml, pcre, session, tokenizer a spl (ve standardní instalaci PHP 7/8 jsou obvykle zapnuta).

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

V Debianu 11 nebo Ubuntu 20.04 LTS nainstalujte tyto balíčky:

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

Konfigurace webu

Vytvořte nový soubor /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;
    }
}

Název domény lizmap.local byste měli někde deklarovat (v souboru /etc/hosts nebo v DNS..) nebo jej nahradit vlastním názvem domény.

Povolte právě vytvořeného virtuálního hostitele:

ln -s /etc/nginx/sites-available/lizmap.conf /etc/nginx/sites-enabled/lizmap.conf

Restartování Nginx

Pro ověření konfigurace je nutné restartovat server Nginx.

service nginx restart

Povolení geolokace

Automatická geolokace poskytovaná službou Lizmap se spoléhá na služby společnosti Google. Abyste ji mohli aktivovat, musí být váš webGIS umístěn pod zabezpečeným protokolem, například HTTPS. Další podrobnosti naleznete na stránce:

https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins

https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-16-04

Vytvoření adresářů pro data

Do těchto adresářů se ukládají soubory QGIS a další soubory mezipaměti.

mkdir /home/data
mkdir /home/data/cache/

Prostorová databáze: PostgreSQL

Poznámka

Tato část je nepovinná. Přečtěte si prosím předpoklady-postgresql.

PostgreSQL a PostGIS mohou být velmi užitečné pro centralizovanou správu prostorových dat na serveru.

Instalace

V Debianu 11 najdete PostgreSQL 13.

Nejprve nainstalujte balíčky:

apt install postgresql postgresql-contrib postgis pgtune

Možná budete muset znovu vytvořit cluster v nové instalaci, abyste mohli nastavit místní nastavení. Tento krok můžete přeskočit, pokud je locale správně nastaveno nebo pokud již máte databáze. Pozor: tyto pokyny zničí všechny existující databáze!

service postgresql stop
pg_dropcluster --stop 13 main
pg_createcluster 13 main --locale fr_FR.UTF8 -p 5432 --start

Nyní můžete vytvořit uživatele a databázi pro Lizmap do Postgresql.

Přizpůsobení konfigurace PostgreSQL

Použijeme pgtune, obslužný program, který dokáže automaticky vygenerovat konfigurační soubor PostgreSQL přizpůsobený vlastnostem serveru (paměť, procesory atd.).

https://pgtune.leopard.in.ua/

# 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

Pro instalaci tabulek Lizmap do databáze PostgreSQL (namísto výchozího SqLite) můžete pokračovat až do následující části, kdy je třeba upravit soubor lizmap/var/config/profiles.ini.php.

Instalace zdrojů webového klienta Lizmap

Získejte nejnovější dostupnou stabilní verzi z naší Stránky vydání na Githubu.

Varování

Nepoužívejte automatický soubor ZIP vytvořený službou GitHub na webových stránkách. Používejte pouze soubor ZIP připojený k vydání.

Nejdříve nastavíme nějakou proměnnou, abychom usnadnili instrukce. Nastavíme verzi a umístění, kam bude Lizmap nainstalován. Tyto hodnoty upravte podle svých požadavků.

VERSION=3.6.5
LOCATION=/var/www

Poté můžete nainstalovat soubor 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

Konfigurace aplikace Lizmap s podporou databáze

Lizmap potřebuje databázi pro ukládání vlastních dat a pro přístup k datům používaným v projektech Qgis pomocí svého editačního nástroje.

Vytvořte profiles.ini.php do lizmap/var/config zkopírováním profiles.ini.php.dist.

cd lizmap/var/config
cp profiles.ini.php.dist profiles.ini.php
cd ../../..

PostgreSQL

Pro editaci vrstev PostGIS v aplikaci Web Client Lizmap nainstalujte podporu PostgreSQL pro PHP. Pro úpravu vrstvy PostgreSQL není třeba upravovat žádný konfigurační soubor. Musíte pouze zkontrolovat, zda server Lizmap může přistupovat k databázi pomocí pověření, která jsou uložena v projektu QGIS (nebo pomocí souboru služby PostgreSQL).

apt install php7.4-pgsql
service php7.4-fpm restart

Protokoly Lizmap, uživatelé a skupiny mohou být uloženy v SqLite nebo PostgreSQL. Chcete-li tyto informace uložit do PostgreSQL, postupujte podle následujících pokynů.

Do čerstvé kopie lizmap/var/config/profiles.ini.php byste měli mít:

[jdb:jauth]
driver=sqlite3
database="var:db/jauth.db"

[jdb:lizlog]
driver=sqlite3
database="var:db/logs.db"

Toto je výchozí konfigurace pro použití Sqlite. Tyto části byste měli změnit na Postgresql a zadat několik parametrů pro přístup k databázi 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

K uložení tabulek lizmap můžete použít konkrétní schéma. A možná budete chtít, aby lizmap mohl přistupovat k jiným schématům. Pak musíte správně nastavit search_path. Příklad:

search_path=lizmap,my_schema,public

Pokud jste na serveru nastavili soubor služby pro postgresql, možná budete chtít uvést službu postgresql namísto přihlašovacího jména, hesla apod. Pak použijte parametr služby:

[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

Povolení rozšíření Spatialite

Chcete-li používat úpravy ve vrstvách spatialite, musíte v PHP přidat rozšíření spatialite. Můžete tak učinit podle těchto pokynů: http://www.gaia-gis.it/gaia-sins/spatialite-cookbook-fr/html/php.html.

Lizmap Web Client testuje, zda je v PHP povolena podpora spatialite. Pokud tomu tak není, nebudou vrstvy spatialite v editačním nástroji použity. Pro úpravy můžete vždy použít data PostgreSQL.

Přidělte příslušná práva adresáři obsahujícímu databáze Spatialite.

Aby mohl Lizmap Web Client měnit data obsažená v databázích Spatialite, musíme zajistit, aby uživatel webového serveru (www-data) měl právo zápisu do adresáře obsahujícího jednotlivé soubory Spatialite.

Například pokud adresář obsahuje projekt QGIS, který používá databázi Spatialite umístěnou v adresáři db na stejné úrovni jako projekt QGIS:

/path/to/a/lizmap_directory
|--- mon_projet.qgs
|--- bdd
   |--- my_spatialite_file.sqlite

Musíte tedy práva udělit tímto způsobem:

chown :www-data /path/to/a/lizmap_directory -R
chmod 775 /path/to/a/lizmap_directory -R

Poznámka

Pokud tedy chcete Lizmap nainstalovat tak, aby poskytoval přístup k více vydavatelům map, měli byste jim říci, aby vždy vytvořili adresář db na stejné úrovni jako projekty QGIS v adresáři Lizmap Web Client. To usnadní práci správci, kterému stačí změnit práva tohoto jedinečného adresáře.

Konfigurace aplikace Lizmap a spuštění instalačního programu

Přidělení příslušných práv k adresářům a souborům

Nastavení práv pro Nginx/Apache, aby skripty PHP mohly zapisovat dočasné soubory nebo provádět změny.

cd /var/www/lizmap-web-client-$VERSION/
lizmap/install/set_rights.sh www-data www-data

Konfigurace nastavení

Vytvořte lizmapConfig.ini.php, localconfig.ini.php a upravte je tak, abyste nastavili parametry specifické pro vaši instalaci. Soubor lizmapConfig.ini.php můžete upravit tak, abyste nastavili url adresu mapového serveru qgis a další věci.

cd lizmap/var/config
cp lizmapConfig.ini.php.dist lizmapConfig.ini.php
cp localconfig.ini.php.dist localconfig.ini.php
cd ../../..

Spuštění instalačního programu

Po vytvoření konfiguračních souborů můžete spustit instalační program.

php lizmap/install/installer.php

Dokončí instalaci a vytvoří všechny tabulky SQL, které Lizmap potřebuje.

Přidání několika demonstračních projektů

Pokud chcete vyzkoušet Lizmap s některými ukázkovými projekty, musíte si nainstalovat unzip a wget nebo curl.

lizmap/install/reset.sh --keep-config --demo

První test

Pro testování spusťte v prohlížeči: http://localhost/lizmap.

V případě, že se zobrazí hlášení 500 - internal server error, spusťte jej znovu:

cd /var/www/lizmap-web-client-$VERSION/
lizmap/install/set_rights.sh www-data www-data

Poznámka

Nahraďte localhost adresou nebo číslem IP vašeho serveru.

V panelu administrace byste měli zkontrolovat QGIS server version a WMS server URL s URL QGIS Serveru.

Varování

Než se pokusíte zprovoznit projekt QGIS v aplikaci Lizmap, je nutné, aby správně fungovala komunikace mezi serverem QGIS a webovým klientem Lizmap. Verze o zásuvných modulech QGIS Serveru musí být viditelné z administračního rozhraní. Přečtěte si prosím Zásuvný modul Lizmap QGIS Server.

Pokud jste demo nenainstalovali, můžete zkontrolovat, zda jste dobře nainstalovali Lizmap a nakonfigurovali QGIS Server v rámci Lizmap tak, že zkontrolujete sekci qgis_server na této adrese URL: http://localhost/lizmap/index.php/view/app/metadata.

{
    "qgis_server":{
        "test":"OK",
        "mime_type":"text\/xml; charset=utf-8"
    }
}

Lizmap je bez další konfigurace přístupný také jako WMS a WFS server z prohlížeče:

http://localhost/lizmap/index.php/lizmap/service/?repository=montpellier&project=montpellier&VERSION=1.3.0&SERVICE=WMS&REQUEST=GetCapabilities

http://localhost/lizmap/index.php/lizmap/service/?repository=montpellier&project=montpellier&SERVICE=WFS&REQUEST=GetCapabilities

a z QGIS:

http://localhost/lizmap/index.php/lizmap/service/?repository=montpellier&project=montpellier&VERSION=1.3.0&

http://localhost/lizmap/index.php/lizmap/service/?repository=montpellier&project=montpellier&

Poznámka

Přístup k serverům WMS a WFS lze omezit přiřazením oprávnění konkrétním úložištím, viz část administrace.

Lizmap moduly

Dříve jsme si vysvětlili, jak můžeme přidat zásuvné moduly QGIS Serveru a přidat do něj další funkce. Nyní, když máme zprovozněného webového klienta Lizmap, můžeme přidat některé moduly Lizmap a přidat opět některé funkce.

Seznam je k dispozici v Lizmap introduction. Na jejich repozitáři GitHub je obvykle jejich instalační návod. Měli byste se jimi řídit. Nicméně zde jsou hlavní pokyny k instalaci modulu.

Instalace modulů pomocí nástroje Composer

Moduly můžete instalovat pomocí nástroje Composer, správce balíčků pro PHP. To je samozřejmě možné pouze v případě, že autor modulu vytvořil balíček svého modulu. Takový balíček má název, například lizmap/lizmap-pgmetadata-module`. To by mělo být uvedeno v dokumentaci modulu.

Je nutné nainstalovat aplikaci Composer. Viz pokyny na jeho webových stránkách http://getcomposer.org.

Musíte vytvořit soubor composer.json do adresáře lizmap/my-packages/ zkopírováním souboru composer.json.dist z tohoto adresáře. A při prvním spuštění Compose

cp -n lizmap/my-packages/composer.json.dist lizmap/my-packages/composer.json
composer install --working-dir=lizmap/my-packages

Pak můžete nainstalovat balíček modulu

composer require --working-dir=lizmap/my-packages "lizmap/lizmap-pgmetadata-module"

Pokud chcete nainstalovat novou verzi modulu, spusťte:

composer update --working-dir=lizmap/my-packages

Přečtěte si dokumentaci k modulu a zjistěte, zda existují další kroky pro jeho konfiguraci.

Tímto příkazem budete muset alespoň spustit konfigurátor modulu:

php lizmap/install/configurator.php name_of_the_module
# example:
php lizmap/install/configurator.php pgmetadata

Instalaci dokončíte opětovným spuštěním instalačního programu Lizmap:

php lizmap/install/installer.php
lizmap/install/clean_vartmp.sh
lizmap/install/set_rights.sh

instalace modulů bez aplikace Composer

Chcete-li nainstalovat modul bez nástroje Composer, načtěte soubor zip modulu.

  • Rozbalte modul do lizmap/lizmap-modules/. Například pro modul PgMetadata :

$ 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
  • Přečtěte si dokumentaci k modulu a zjistěte, zda existují další kroky pro jeho konfiguraci.

Tímto příkazem budete muset alespoň spustit konfigurátor modulu:

php lizmap/install/configurator.php name_of_the_module
# example:
php lizmap/install/configurator.php pgmetadata
  • Spusťte instalaci :

php lizmap/install/installer.php
lizmap/install/clean_vartmp.sh
lizmap/install/set_rights.sh