5. Extensions

5.1. Liste d’extensions

Les extensions peuvent également être installées sur QGIS Server.

Certaines extensions, destinées à un usage sur serveur, sont disponibles sur le dépôt officiel de QGIS.

N’installez que les extensions dont vous avez besoin. Sur QGIS Server, les extensions sont comme des hooks, et peuvent donc modifier les éléments en entrée et sortie de QGIS Server. Elles peuvent produire des résultats non escomptés si vous ne savez pas comment fonctionne l’extension. Veuillez vous référer à leur documentation ou à celle de l’application qui nécessite des extensions de QGIS Server afin d’identifier quelle extension pourrait vous être utile.

5.2. Emplacement des extensions

Par défaut, sur les systèmes basés sur Debian, QGIS Server va rechercher les plugins situés dans /usr/lib/qgis/plugins. La valeur par défaut est affichée au démarrage de QGIS Server, dans les logs. Il est possible de définir un chemin personnalisé en définissant la variable d’environnement QGIS_PLUGINPATH dans la configuration du serveur web.

5.3. Installation

5.3.1. Manuellement depuis un fichier ZIP

Par exemple, pour installer le plugin HelloWorld pour tester le serveur, à l’aide un dossier spécifique, vous devez d’abord créer un répertoire pour accueillir les plugins du serveur. Ceci sera spécifié dans la configuration de l’hôte virtuel et passé au serveur via une variable d’environnement.

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

Avertissement

D’après sa description, l’extension HelloServer est à des fins de développement et de démonstration. Ne la conservez pas en production si vous n’en avez pas besoin.

5.3.2. Avec un outil en ligne de commandes

Si vous devez régulièrement installer et mettre à jour des extensions à partir du dépôt de QGIS, vous pourriez utiliser QGIS-Plugin-Manager qui est un outil d’aide à la gestion d’extensions en ligne de commande.

L’installation se fait via pip. Installer dans un environnement virtuel est une bonne pratique mais elle n’est pas obligatoire :

pip3 install qgis-plugin-manager

Pour mettre à niveau l’outil :

pip3 install --upgrade qgis-plugin-manager

Ensuite, vous pouvez utiliser l’exécutable qgis-plugin-manager depuis la ligne de commande :

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    |
------------------------------------------------------------------------------------------------------------------------------------------------------------

Nous vous suggérons de lire la documentation complète afin de mieux cerner comment installer et mettre à jour les extensions avec cet outil.

5.4. Configuration d’un serveur HTTP

5.4.1. Apache

Pour être en mesure d’utiliser une extension serveur, FastCGI doit savoir où chercher. Donc, nous devons modifier le fichier de configuration Apache pour renseigner la variable d’environnement QGIS_PLUGINPATH à FastCGI :

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

De plus, une autorisation basique HTTP est nécessaire pour utiliser l’extension HelloWorld citée précédemment. Donc, nous devons mettre à jour une dernière fois le fichier de configuration Apache :

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

Puis, redémarrez Apache :

systemctl restart apache2

5.5. Comment utilisez une extension ?

Testez le serveur avec l’extension HelloWorld :

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

Vous pouvez consulter les GetCapabilities par défaut du serveur QGIS sur :

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