Prérequis pour l’installation de Lizmap Web Client

Note

Si vous souhaitez installer et tester rapidement Lizmap Web Client en quelques étapes, vous pouvez suivre ces instructions en utilisant Docker et Docker-Compose.

QGIS serveur

Avertissement

Avant d’installer la partie Qgis Server, il est hautement recommandé d’utiliser la même version de Qgis Desktop et de Qgis Server.

Même si des fonctions devraient fonctionner, il y a une probabilité que certaines configurations ne fonctionnent pas si ces deux versions sont différentes.

La raison est que QGIS Server version X peut ne pas pouvoir charger un projet créé avec la version Y de QGIS Desktop.

Suivez la documentation de QGIS pour installer QGIS Server : https://docs.qgis.org/latest/fr/docs/server_manual/index.html .

En plus d’un serveur web (Apache ou Nginx), vous devez installer QGIS Server. Avec Nginx, la configuration recommandée est d’utiliser spawn-fcgi. Ne pas utiliser fcgiwrap, cette solution n’est pas efficace.

Dans la configuration Nginx, il est conseillé d’utiliser la variable QGIS_OPTIONS_PATH pour un dossier avec les droits d’écriture pour www-data. Cela est expliqué dans la documentation Qgis serveur.

Vous devriez également installer et configurer XVFB mentionné dans la documentation QGIS. Cela est utile pour les impressions PDF. Vous pouvez ignorer la section si vous ne planifiez pas d’imprimer en PDF du côté serveur.

Après avoir configurer votre serveur web avec QGIS serveur, vérifiez que l’URL de QGIS serveur fonctionne. Vous obtiendrez probablement un XML semblable à :

<ServerException>Project file error</ServerException>

Gardez cette URL, nous l’utiliserons plus tard dans le panneau d’administration de Lizmap.

Avertissement

Nous vous encourageons fortement de configurer QGIS Serveur sur un hôte virtuel différent que celui de Lizmap Web Client. L’URL de QGIS Serveur doit rester privée, accessible uniquement depuis le PHP de Lizmap.

Sinon, surtout après avoir installé le plugin Lizmap dans QGIS Server, un utilisateur pourrait accéder à des données privées en contournant Lizmap, en passant directement par l’URL du serveur QGIS.

Extensions QGIS serveur

Certains plugins peuvent être ajoutés à QGIS serveur. Cela activera certaines fonctionnalités dans Lizmap. Ce n’est pas obligatoire mais dans certaines situations, c’est mieux.

Soit vous configurez la variable d’environnement QGIS_PLUGIN_PATH pendant l’installation de QGIS serveur, soit utilisez celle par défaut fournie par QGIS. https://docs.qgis.org/latest/fr/docs/server_manual/config.html#environment-variables

Astuce

Pour configurer les extensions QGIS Serveur, nous encourageons l’utilisation de qgis-plugin-manager, un outil CLI pour installer et mettre à jour des extensions. https://pypi.org/project/qgis-plugin-manager/

Plugin Lizmap QGIS Server

L’ajout du plugin Lizmap QGIS Server ajoutera quelques fonctionnalités sur Lizmap Web Client :

  • récupérer les informations de QGIS Server.

  • evaluate QGIS Expressions in forms about :

  • Vérification des listes de contrôle d’accès (ACL, Access Control List) pour les entités et les couches :

    • filtrage par polygone

    • par attribut

  • utilisation de la popup type Formulaire, lire Popup formulaire.

  • activer les variables @lizmap_user et lizmap_user_groups dans les projets QGIS

  • https://github.com/3liz/qgis-lizmap-server-plugin

  • Le plugin n’est pas requis, mais quelques fonctionnalités ne fonctionneront pas comme attendue si le plugin n’est pas installé ou mis à jour.

  • Le nom du plugin est Lizmap server. N’installez pas le plugin Lizmap, qui est le plugin pour Qgis Desktop.

Installation
Côté QGIS serveur

Le plugin Lizmap server doit être installé dans le bon dossier pour Qgis Server. La variable d’environnement doit être défini dans Qgis Server. Le plugin s’appelle Lizmap server.

With QGIS-Plugin-Manager :

# Not correct, this plugin is only for QGIS desktop
# qgis-plugin-manager install Lizmap

# Correct, the plugin designed for QGIS server
qgis-plugin-manager install 'Lizmap server'

Avertissement

For security reason, to enable all features on the QGIS server side, you must enable the environment variable QGIS_SERVER_LIZMAP_REVEAL_SETTINGS with the value True on QGIS server.

Vous devez vous assurer que cette API http://your.qgis.server.url/lizmap/server.json est protégée sur votre serveur web. Le mieux est de restreindre l’accès à QGIS Server http://your.qgis.server.url sur un hôte virtuel, non accessible sur Internet. Toutes les requêtes au serveur QGIS seront envoyées par Lizmap Web Client. Le serveur QGIS ne doit pas être accessible de l’extérieur. Il était déjà fortement recommandé auparavant de protéger le serveur QGIS d’Internet. Les utilisateurs doivent utiliser les liens WFS/WMS fournis par Lizmap Web Client, afin que Lizmap puisse vérifier les autorisations des utilisateurs.

Cette variable exposera les paramètres du serveur tels que la version du serveur QGIS, qui est utilisée par Lizmap Web Client.

Interface d’administration

Vous devez avoir un tableau appelé « Informations serveur » fonctionnant correctement dans le panneau d’administration, avant d’essayer un projet QGIS.

Si vous utilisez QGIS Server avec FCGI, l’URL API de Lizmap doit être vide.

Sinon, si vous utilisez Py-QGIS-Server, l’URL API de Lizmap doit être configurée dans l’administration. Dans la configuration de Py-QGIS-Server, vous devez également explicitement publier l’API.

À partir de la version 1.8.4 de Py-QGIS-Server, il est possible d’activer le point d’entrée API Lizmap avec la variable d’environnement QGSRV_API_ENDPOINTS_LIZMAP=yes, ou alors ajoutez la configuration suivante dans le fichier de configuration :

[api.endpoints]
lizmap_api=/lizmap

[api.enabled]
lizmap_api=yes

Puis, avec Py-QGIS-Server , si votre URL pour OWS est http://map:8080/ows/, cela veut dire que l’URL du point d’entrée de l’API pour Lizmap est http://map:8080/lizmap/.

PostgreSQL

PostgreSQL peut être utilisé pour trois usages différents dans Lizmap :

  • Pour stocker des données SIG. Aucune configuration n’est nécessaire côté serveur Lizmap Web Client, seul le serveur PostgreSQL doit être accessible depuis le serveur Lizmap Web Client. Il est possible d’éditer des couches avec Lizmap, mais la couche doit être stockée dans PostgreSQL. Voir Pré-requis.

  • Pour stocker les utilisateurs et les actions des utilisateurs du client Web Lizmap. Lizmap utilise des tableaux. Ce réglage doit être fait lors de l”installation de Lizmap.

  • Pour utiliser lizmap_search, voyez Recherche PostgreSQL. Ce paramétrage sur le serveur de Lizmap peut être fait quand vous le souhaitez.