5. Plug-ins

5.1. Lijst met plug-ins

Plug-ins kunnen ook worden geïnstalleerd op QGIS Server.

Sommige voor Server ontworpen plug-ins zijn te vinden in de officiële opslagplaats van QGIS.

Installeer alleen plug-ins die u nodig hebt voor uw eigen doelen. Op QGIS server zijn plug-ins als haken naar QGIS server, zijn kunnen alleen in- of uitvoer van QGIS server wijzigen. Zij kunnen onverwachte resultaten produceren als u niet weet hoe de plug-in werkt. Bekijk hun respectievelijke documentatie of de toepassing die plug-ins voor QGIS server nodig heeft om te weten te komen welke plug-in voor u nuttig kan zijn.

5.2. Locatie van plug-ins

Op op Debian gebaseerde systemen zal QGIS Server standaard zoeken naar plug-ins die zijn geplaatst in /usr/lib/qgis/plugins. De standaardwaarde wordt in de logs weergegeven als QGIS Server wordt opgestart. Het is mogelijk een aangepast pad in te stellen door de omgevingsvariabele QGIS_PLUGINPATH in de configuratie voor de webserver te definiëren.

5.3. Installeren

5.3.1. Handmatig met een ZIP

Als een voorbeeld, om de plug-in HelloWorld voor het testen van de server, met behulp van een specifieke map, te installeren, dient u eerst een map aan te maken waar de plug-ins voor de server moeten komen te staan. Die zal worden gespecificeerd in de configuratie van de virtuele host en worden doorgegeven aan de server door middel van een omgevingsvariabele:

mkdir -p /var/www/qgis-server/plugins
cd /var/www/qgis-server/plugins
wget https://github.com/elpaso/qgis-helloserver/archive/master.zip
unzip master.zip
mv qgis-helloserver-master HelloServer

Waarschuwing

Gelet op zijn beschrijving, is de plug-in HelloServer ontworpen voor demonstratie- en ontwikkelingsdoeleinden. Behoud deze niet voor productie als u hem niet nodig hebt.

5.3.2. Met een programma voor de opdrachtregel

Wanneer u plug-ins moet installeren en regelmatig moet upgraden die zijn opgeslagen in de QGIS opslagplaats voor plug-ins, zou u de QGIS-Plugin-Manager kunnen gebruiken. Het is een gereedschap om u te helpen plug-ins te beheren vanaf de opdrachtregel.

Installeren gebeurt met pip. Installeren in een virtuele omgeving is een goede manier, maar niet vereist:

pip3 install qgis-plugin-manager

Upgraden van het gereedschap:

pip3 install --upgrade qgis-plugin-manager

Daarna kunt u het uitvoerbare bestand qgis-plugin-manager gebruiken vanaf de opdrachtregel:

cd /var/www/qgis-server/plugins
qgis-plugin-manager list

QGIS server version 3.19.0
List all plugins in /var/www/qgis-server/plugins

------------------------------------------------------------------------------------------------------------------------------------------------------
|  Folder                  |  Name            |  Version  |  Experimental  |  QGIS min  |  QGIS max  |  Author                  |  Action ⚠          |
------------------------------------------------------------------------------------------------------------------------------------------------------
|wfsOutputExtension        |wfsOutputExtension|1.6.2      |                |3.0         |            |3Liz                      |                    |
|qgis_server_render_geojson|GeoJson Renderer  |v0.4       |                |3.4         |            |Matthias Kuhn (OPENGIS.ch)|                    |
|DataPlotly                |Data Plotly       |3.7.1      |                |3.4         |3.98        |Matteo Ghetta (Faunalia)  |Upgrade to 3.8.1    |
------------------------------------------------------------------------------------------------------------------------------------------------------

We raden u aan om de volledige documentatie in het readme-bestand te lezen om te weten te komen hoe u plug-ins installeert of upgradet met dit gereedschap.

5.4. Configureren van de HTTP-server

5.4.1. Apache

FastCGI moet, om in staat te zijn de plug-ins voor de server te kunnen gebruiken, weten waar die te vinden. We moeten dus het configuratiebestand van Apache aanpassen om de omgevingsvariabele QGIS_PLUGINPATH aan te geven voor FastCGI:

FcgidInitialEnv QGIS_PLUGINPATH "/var/www/qgis-server/plugins"

Meer nog, een basisautorisatie voor HTTP is noodzakelijk om met de eerder geïntroduceerde plug-in HelloWorld te kunnen experimenteren. We moeten dus het configuratiebestand voor Apache nog een laatste keer aanpassen:

# Needed for QGIS HelloServer plugin HTTP BASIC auth
<IfModule mod_fcgid.c>
    RewriteEngine on
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

Start Apache dan opnieuw:

systemctl restart apache2

5.5. Hoe een plug-in te gebruiken

De server testen met de plug-in HelloWorld:

wget -q -O - "http://localhost/cgi-bin/qgis_mapserv.fcgi?SERVICE=HELLO"
 HelloServer!

U kunt eens kijken naar de standaard GetCapabilities van de QGIS server op:

http://localhost/cgi-bin/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities