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. 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. 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. 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. 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 door127.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 metgedit /etc/hosts
.We kunnen controleren of
myhost
verwijst naar de localhost door in de terminal de opdrachtping myhost
uit te voeren die terug zou moeten geven:
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
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 bestandmyhost.conf
te maken in de map/etc/apache2/sites-available
die dezelfde inhoud heeft als het bestandqgis.demo.conf
met uitzondering van de regelServerName
die zou moeten zijnServerName 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 metservice 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.