Py-QGIS-Server
Py-QGIS-Server byl navržen pro správu mapových procesů QGIS Serveru.
Předběžné požadavky
Předpokládáme, že již máte nainstalované balíčky QGIS Server, jak je vysvětleno v dokumentaci QGIS Server.
Poznámka
Konfiguraci webového serveru Nginx/Apache nemusíte číst v dokumentaci QGIS. Py-QGIS-Server má totiž vlastní webový server.
Instalace v Python venv
Přidáme potřebné balíčky, které nejsou součástí QGIS Serveru :
apt install python3-venv python3-psutil
Poté vytvoříme virtuální prostředí Py-QGIS-Server a nainstalujeme py-qgis-server pomocí pip :
set -e
python3 -m venv /opt/local/py-qgis-server --system-site-packages
/opt/local/py-qgis-server/bin/pip install -U pip setuptools wheel pysocks typing py-qgis-server
Py-QGIS-Server je nainstalován.
Konfigurace a související soubory
Níže použité složky
mkdir -p /srv/qgis/plugins /srv/qgis/config /srv/data /var/log/qgis /var/lib/py-qgis-server
Soubor, který je třeba sledovat pro restartování workers
Vytvoříme prázdný soubor, který bude sledován Py-QGIS-Serverem, aby zkontroloval, kdy restartovat mapové pracovníky QGIS Serveru.
touch /var/lib/py-qgis-server/py-qgis-restartmon
chmod 664 /var/lib/py-qgis-server/py-qgis-restartmon
Bash soubor pro restartování workerů
Vytvoříme spustitelný soubor /usr/bin/qgis-reload pro restartování mapových workerů QGIS Serveru. Bude obsahovat:
#!/bin/bash
touch /var/lib/py-qgis-server/py-qgis-restartmon
Poté změníme jeho mod :
chmod 750 /usr/bin/qgis-reload
Konfigurační soubor
Vytvoříme konfigurační soubor Py-QGIS-Server /srv/qgis/server.conf. Bude obsahovat:
#
# Py-QGIS-Server configuration
# https://docs.3liz.org/py-qgis-server/
#
[server]
port = 7200
interfaces = 127.0.0.1
workers = 4
pluginpath = /srv/qgis/plugins
timeout = 200
restartmon = /var/lib/py-qgis-server/py-qgis-restartmon
[logging]
level = info
[projects.cache]
strict_check = false
rootdir = /srv/data
size = 50
advanced_report = no
[monitor:amqp]
routing_key =
default_routing_key=
host =
[api.endpoints]
lizmap_api=/lizmap
[api.enabled]
lizmap_api=yes
V tomto příkladu:
QGIS Server bude k dispozici na
http://127.0.0.1:7200/ows/Pluginy jsou nainstalovány v: file:/srv/qgis/plugins (
pluginpath). Viz Zásuvné moduly QGIS Server.Soubor, který je třeba sledovat pro restartování workerů, je: /var/lib/py-qgis-server/py-qgis-restartmon (
restartmon).adresář obsahující projekty, které mají být publikovány: soubor:/srv/data (
rootdir). Projekty musí být uloženy v podsložkách.Lizmap QGIS Server API je povoleno
Správa pomocí systemd
Nejprve vytvoříme soubor prostředí /srv/qgis/config/qgis-service.env s obsahem
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
DISPLAY=:99
QGIS_OPTIONS_PATH=/srv/qgis/
QGIS_AUTH_DB_DIR_PATH=/srv/qgis/
GDAL_CACHEMAX=2048
QGIS_SERVER_CACHE_SIZE=2048
QGIS_SERVER_LIZMAP_REVEAL_SETTINGS=TRUE
QGIS_SERVER_FORCE_READONLY_LAYERS=TRUE
QGIS_SERVER_TRUST_LAYER_METADATA=TRUE
QGIS_SERVER_APPLICATION_NAME=qgis-server
V tomto souboru jsme definovali:
Jazyk
Port Xvfb, potřebný pro tisk PDF
Možnosti QGIS a cesta „authDB“ (potřebná pro HTTPS, při použití ve vzdálených vrstvách, jako jsou dlaždice OSM)
Proměnná prostředí Lizmap pro zobrazení nastavení
Další proměnné QGIS Serveru, z dokumentace <https://docs.3liz.org/py-qgis-server/configuration.html#common-configuration-options>_.
Poté můžeme vytvořit soubor QGIS service systemd file /etc/systemd/system/qgis.service s
[Unit]
Description=QGIS server
After=network.target
[Service]
Type=simple
ExecStart=/opt/local/py-qgis-server/bin/qgisserver -c /srv/qgis/server.conf
# FIXME it is recommended to have a script *synchronous*, which is not the case here
ExecReload=/usr/bin/qgis-reload
KillMode=control-group
KillSignal=SIGTERM
TimeoutStopSec=10
Restart=always
StandardOutput=append:/var/log/qgis/qgis-server.log
StandardError=inherit
SyslogIdentifier=qgis
EnvironmentFile=/srv/qgis/config/qgis-service.env
User=root
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
Nakonec povolíme spuštění služby QGIS Server při spuštění systému a službu také spustíme hned teď:
systemctl enable qgis
service qgis start
Ladění a kontrola
Tip
1. We can check that QGIS Server with Py-QGIS-Server is working with :
curl http://127.0.0.1:7200/ows/
2. After the installation of Lizmap Server QGIS plugin, we can check with :
curl http://127.0.0.1:7200/lizmap/server.json | jq '.'
Read Zásuvné moduly QGIS Server with the use of QGIS-Plugin-Manager.
Přizpůsobení konfigurace webového klienta Lizmap
Buď ruční úpravou souboru lizmap/var/config/lizmapConfig.ini.php, nebo změnou v grafickém uživatelském rozhraní webového klienta Lizmap :
[services]
;URL to QGIS Server for OGC web services
wmsServerURL="http://127.0.0.1:7200/ows/"
;URL to the API exposed by the Lizmap plugin for QGIS Server
lizmapPluginAPIURL="http://127.0.0.1:7200/lizmap/"
; path to find repositories
rootRepositories="/srv/data"
V panelu Informace o serveru by se měla zobrazit verze QGIS Serveru a nainstalované pluginy.
Poznámka
Pokud se chcete dozvědět více o Py-QGIS-Serveru, přečtěte si jeho specializovanou dokumentaci Py-QGIS-Server documentation, například o předem načtených projektech, správě API atd.