Configuration d’installation avancée

Lizmap derrière un proxy ou reverse proxy

Parfois, certaines URLs dans Lizmap peuvent ne pas être celles que vous attendez. Par exemple, elles sont utilisées avec le protocole « http » au lieu du protocol « https ». Ou elles peuvent contenir un numéro de port non désiré ( http://mydomain:5468/ au lieu de http://mydomain/ ). Ou encore elles peuvent ne pas contenir le bon nom de domaine.

Dans la plupart des cas, c’est à cause du serveur web ou PHP-fpm qui sont derrière un serveur web maître (qui joue le rôle d’un proxy ou reverse-proxy), et donc les paramètres d’environnement donnés par PHP ou par le serveur web applicatif à Lizmap ne sont pas bons.

Vous pouvez dire à Lizmap de forcer les urls en HTTPS, d’utiliser le bon domaine, ou d’utiliser le bon port.

Dans localconfig.ini.php, vous pouvez utiliser ces paramètres de configuration suivants.

Pour forcer à indiquer le port 80 (true) ou le port 8080 par exemple avec le protocol http :

forceHTTPPort = true
# or
forceHTTPPort = 8080

Pour forcer à indiquer le port 443 (true) ou le port 8443 par exemple avec le protocol https :

forceHTTPSPort = true
# or
forceHTTPSPort = 8443

Pour spécifier le nom de domaine de votre application Lizmap, si Lizmap n’arrive pas à le deviner :

domainName = www.example.com

Si le chemin de l’URL du serveur web backend ne correspond pas au chemin de l’URL du serveur web frontal (ex : le proxy redirige les urls comme http://example.com/index.php vers votre serveur web http://backend.example.com/foo/bar/index.php), vous devez indiquer le chemin d’URL « publique » (basePath) et le chemin d’URL privée (backendBasePath) :

[urlengine]
basePath= /
backendBasePath = /foo/bar

Si le reverse proxy redirige les requêtes HTTPS vers HTTP, vous devez désactiver la vérification HTTPS:

[urlengine]
checkHttpsOnParsing = off

Depuis Lizmap 3.0.18 et 3.1.6, vous pouvez indiquer de forcer toutes les urls vers le protocole HTTPS, quand Lizmap ne sait pas quel est le protocol utilisé pour accéder au serveur frontal.

[urlengine]
checkHttpsOnParsing = off
forceProxyProtocol = https

Utiliser les variables d’environnements

Si des informations d’accès ou des paramètres sont disponibles dans des variables d’environnement, vous pouvez les indiquer dans les fichiers localconfig.ini.php ou profiles.ini.php. Soyez certains que ces variables d’environnements existent dans le contexte du processus PHP-FPM ou Apache/Nginx.

Dans ces fichiers, utilisez la syntaxe ${VARIABLE_NAME}.

Par exemple, pour indiquer les paramètres d’accès à Postgresql qui sont stockés dans ces variables :

LIZMAP_PGSQL_HOST=localhost
LIZMAP_PGSQL_DATABASE=lizmap
LIZMAP_PGSQL_LOGIN=admin
LIZMAP_PGSQL_PASSWORD="Sup3Rp4ssw0rd!"

Vous écrivez cette configuration dans profiles.ini.php :

[jdb:jauth]
driver="pgsql"
database=${LIZMAP_PGSQL_DATABASE}
host=${LIZMAP_PGSQL_HOST}
user=${LIZMAP_PGSQL_LOGIN}
password=${LIZMAP_PGSQL_PASSWORD}