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:
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.).
# 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:
a z QGIS:
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 modulPgMetadata
:
$ 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