11.1. Lesson: QGIS Server installeren

Het doel voor deze les: Leren hoe QGIS Server te installeren op Debian Stretch. Met verwaarloosbare variaties kunt u dit ook volgen voor elke distributie die is gebaseerd op Debian, zoals Ubuntu en de afgeleiden daarvan.

Notitie

In Ubuntu kunt u uw gewone gebruiker gebruiken, sudo vooraf laten gaan aan opdrachten die rechten van de admin vereisen. In Debian kunt u werken als admin (root), zonder sudo te gebruiken.

11.1.1. moderate Follow Along: Installeren vanuit pakketten

In deze les doen we alleen het installeren vanuit pakketten zoals hier is weergegeven.

QGIS Server installeren met:

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

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

QGIS Server zou in productie moeten worden gebruikt zonder geïnstalleerde QGIS Desktop (met de daarbij behorende X Server) op dezelfde machine.

11.1.2. moderate Follow Along: QGIS Server uitvoerbare bestand

Het voor QGIS Server uitvoerbare ebstand is qgis_mapserv.fcgi. U kunt controleren waar het is geïnstalleerd door find / -name 'qgis_mapserv.fcgi' uit te voeren wat iets uit zou moeten uitvoeren als /usr/lib/cgi-bin/qgis_mapserv.fcgi.

Indien u, optioneel, op dit moment een test op de opdrachtregel wilt uitvoeren, kunt u de opdracht /usr/lib/cgi-bin/qgis_mapserv.fcgi die iets uit zou moeten voeren als:

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>

Dat is goed, het vertelt u dat we op het juiste spoor zitten omdat de server zegt dat we niet hebben gevraagd naar een ondersteunde service. We zullen later zien hoe verzoeken voor WMS te maken.

11.1.3. hard HTTP serverconfiguratie

We moeten een HTTP-server gebruiken om toegang te krijgen tot de geïnstalleerde QGIS-server via een internetbrowser. Het installatieproces voor Apache HTTP Server wordt in detail beschreven in het gedeelte Apache HTTP Server.

Notitie

Indien u QGIS Server installeerde zonder een X Server uit te voeren (opgenomen in Linux Desktop) en indien u ook de opdracht GetPrint wilt gebruiken dan zou u een namaak- X Server moeten installeren en QGIS Server moeten vertellen om die te gebruiken. U kunt dat doen door het Xvfb installatieproces te volgen.

11.1.4. moderate Follow Along: Een andere virtuele host maken

Laten we eens een andere Apache virtuele host maken die verwijst naar QGIS Server. U kunt elke naam kiezen die u wilt (coco.bango, super.duper.training, example.com, etc.) maar omwille van de eenvoud gaan wij myhost gebruiken.

  • Laten we de naam myhost instellen om te verwijzen naar het IP van de localhost IP door 127.0.0.1 x toe te voegen aan het bestand /etc/hosts met de volgende opdracht: sh -c "echo '127.0.0.1 myhost' >> /etc/hosts" of door handmatig te bewerken met gedit /etc/hosts.

  • We kunnen controleren of myhost verwijst naar de localhost door in de terminal de opdracht ping myhost uit te voeren die terug zou moeten geven:

[email protected]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
  • Laten we eens proberen of we toegang kunnen krijgen tot QGIS Server vanaf de site van myhost door uit te voeren: curl http://myhost/cgi-bin/qgis_mapserv.fcgi of door toegang te krijgen tot de URL via de browser van uw Debianbox. U zult waarschijnlijk terugkrijgen:

<!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 weet niet dat het geacht wordt verzoeken te beantwoorden die verwijzen naar de server genaamd myhost. De meest eenvoudige manier om de virtuele host in te stellen zou zijn om een bestand myhost.conf te maken in de map /etc/apache2/sites-available die dezelfde inhoud heeft als het bestand qgis.demo.conf met uitzondering van de regel ServerName die zou moeten zijn ServerName myhost. U zou ook kunnen wijzigen waar de logboeken naartoe moeten worden gestuurd, omdat anders de logboeken voor de twee virtuele hosts zouden worden gedeeld maar dit is optioneel.

  • Laten we nu de virtuele host inschakelen met apt-get a2ensite myhost.conf en dan de Apache-service opnieuw laden met service apache2 reload.

  • Als u probeert toegang te krijgen tot de URL http://myhost/cgi-bin/qgis_mapserv.fcgi zult u merken dat nu alles werkt!

11.1.5. In Conclusion

U heeft geleerd verschillende versies van QGIS Server vanuit pakketten te installeren, hoe Apache te configureren met QGIS Server, op distributies voor Linux die zijn gebaseerd op Debian.

11.1.6. What’s Next?

Nu u QGIS Server hebt geïnstalleerd en het toegankelijk is via het protocol HTTP, moeten we leren hoe toegang te krijgen tot enkele services die het biedt. Het onderwerp van de volgende les is hoe te leren toegang te krijgen tot WMS-services van QGIS Server.