11.1. Lesson: Installer QGIS Server

Le but de cette leçon: Apprendre comment installer QGIS Server sur Debian Stretch. Avec des variations négligeables, vous pouvez également le suivre pour toute distribution basée sur Debian comme Ubuntu et ses dérivés.

Note

Dans Ubuntu, vous pouvez utiliser votre utilisateur normal, en ajoutant sudo aux commandes nécessitant des autorisations d’administrateur. Dans Debian, vous pouvez travailler en tant qu’administrateur (root), sans utiliser sudo.

11.1.1. moderate Installer Follow Along: depuis les packages

Dans cette leçon, nous allons seulement faire l’installation à partir de paquets comme indiqué ici .

Installez QGIS Server avec:

apt install qgis-server --no-install-recommends --no-install-suggests

# if you want to install server plugins, also:
apt install python-qgis

QGIS Server doit être utilisé en production sans que QGIS Desktop (avec le serveur X qui l’accompagne) soit installé sur la même machine.

11.1.2. moderate Follow Along: Exécutable QGIS Server

L’exécutable QGIS Server est qgis-mapserv.fcgi. Vous pouvez vérifier à quel endroit il a été installé au moyen de la commande: find / -name 'qgis_mapserv.fcgi' qui devrait renvoyer quelque chose comme /usr/lib/cgi-bin/qgis_mapserv.fcgi.

De manière facultative, si vous voulez tester l’exécutable en ligne de commande vous pouvez lancer: /usr/lib/cgi-bin/qgis_mapserv.fcgi, ce qui devrait produire un résultat semblable à:

QFSFileEngine::open: No file name specified
Warning 1: Unable to find driver ECW to unload from GDAL_SKIP environment variable.
Warning 1: Unable to find driver ECW to unload from GDAL_SKIP environment variable.
Warning 1: Unable to find driver JP2ECW to unload from GDAL_SKIP environment variable.
Warning 1: Unable to find driver ECW to unload from GDAL_SKIP environment variable.
Warning 1: Unable to find driver JP2ECW to unload from GDAL_SKIP environment variable.
Content-Length: 206
Content-Type: text/xml; charset=utf-8

<ServiceExceptionReport version="1.3.0" xmlns="https://www.opengis.net/ogc">
 <ServiceException code="Service configuration error">Service unknown or unsupported</ServiceException>
</ServiceExceptionReport>

C’est une bonne chose. Ce message signifie que nous sommes sur le bon chemin puisque le serveur répond que nous n’avons demandé aucun service supporté. Nous verrons plus loin comment faire des requêtes WMS.

11.1.3. hard Configuration HTTP du Serveur

Pour accéder au serveur QGIS depuis un navigateur internet, il faut mettre en place un serveur HTTP. L’installation du serveur HTTP Apache est décrite dans la section Apache HTTP Server.

Note

Si vous avez installé QGIS Server sans serveur X (inclus avec Linux Desktop) et si vous voulez aussi utiliser la commande GetPrint alors il faut installer un serveur X factice et dire à QGIS Server de l’utiliser. Pour ce faire, consultez le processus d’installation de Xvfb.

11.1.4. moderate Follow Along: Créer un autre virtual host

Créons un autre virtual host Apache pointant sur QGIS Server. Vous pouvez choisir n’importe quel nom vous faisant plaisir (coco.bango, super.duper.training, example.com, etc.) mais pour faire simple nous allons choisir myhost.

  • Configurons le nom myhost pour qu’il pointe vers l’IP localhost en ajoutant 127.0.0.1 x au /etc/hosts avec la commande suivante : sh -c "echo '127.0.0.1 myhost' >> /etc/hosts" ou en éditant manuellement le fichier avec gedit /etc/hosts.

  • Nous pouvons vérifier que myhost pointe sur le localhost en exécutant dans le terminal la commande ping myhost qui devrait afficher :

qgis@qgis:~$ ping myhost
PING myhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.024 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.029 ms
  • Voyons si nous pouvons accéder à QGIS Server depuis le site myhost en exécutant : curl http://myhost/cgi-bin/qgis_mapserv.fcgi ou en accédant à l’URL depuis le navigateur de votre box Debian. Vous obtiendrez probablement :

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /cgi-bin/qgis_mapserv.fcgi was not found on this server.</p>
<hr>
<address>Apache/2.4.25 (Debian) Server at myhost Port 80</address>
</body></html>
  • Apache ne sait pas qu’il est censé répondre à des requêtes pointant vers le serveur nommé myhost. Pour configurer l’hôte virtuel, le plus simple serait de créer un fichier monhôte.conf dans le répertoire /etc/apache2/sites-available qui aurait le même contenu que le fichier qgis.demo.conf sauf pour la ligne ServerName qui devrait être ServerName myhost. Vous pouvez également changer l’emplacement des logs, sinon les logs des deux hôtes virtuels seront partagés, mais ceci est optionnel.

  • Activons maintenant l’hôte virtuel avec a2ensite myhost.conf et rechargeons ensuite le service Apache avec service apache2 reload.

  • Si vous essayez de nouveau d’accéder à http://myhost/cgi-bin/qgis_mapserv.fcgi vous verrez que tout fonctionne maintenant !

11.1.5. In Conclusion

Vous avez appris comment installer les différents versions de QGIS Server depuis les paquets, comment configurer Apache avec QGIS Server, sur Debian basé sur Linux.

11.1.6. What’s Next?

Maintenant que vous avez installé QGIS server et qu’il est accessible via le protocole HTTP, nous devons apprendre à accéder à certains des services qu’il peut offrir. Le sujet de la prochaine leçon est d’apprendre comment accéder aux services WMS de QGIS Server.