11.1. Lesson: instalar QGIS Server
El objetivo de esta lección: Aprender a instalar QGIS Server en Debian Stretch. Con variaciones insignificantes, también puede seguirlo para cualquier distribución basada en Debian como Ubuntu y sus derivados.
Nota
En Ubuntu puede usar su usuario habitual, anteponiendo sudo
a los comandos que requieren permisos de administrador. En Debian puedes trabajar como administrador (root
), sin usar sudo
.
11.1.1. Follow Along: Instalar desde paquetes
En esta lección vamos a hacer solo la instalación desde paquetes como se muestra aquí <https://qgis.org/en/site/forusers/alldownloads.html#linux>`_ .
instalar QGIS Server con:
apt install qgis-server --no-install-recommends --no-install-suggests
# if you want to install server plugins, also:
apt install python-qgis
QGIS Server debe usarse en producción sin QGIS Desktop (con el X Server adjunto) instalado en la misma máquina.
11.1.2. Follow Along: Servidor QGIS Ejecutable
El ejecutable del servidor QGIS es qgis_mapserv.fcgi
. Puede comprobar dónde se ha instalado ejecutando find / -name 'qgis_mapserv.fcgi'
que debería generar algo como /usr/lib/cgi-bin/qgis_mapserv.fcgi
.
Opcionalmente, si desea hacer una prueba de línea de comandos en este momento, puede ejecutar el comando /usr/lib/cgi-bin/qgis_mapserv.fcgi
que debería generar algo como:
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>
Esto es bueno, le dice que estamos en el camino correcto ya que el servidor dice que no hemos solicitado un servicio compatible. Más adelante veremos cómo realizar solicitudes WMS.
11.1.3. Configuración Servidor HTTP
Para acceder al servidor QGIS instalado desde un navegador de Internet, necesitamos usar un servidor HTTP. El proceso de instalación del servidor HTTP Apache se detalla en la sección Servidor HTTP Apache.
Nota
Si instaló QGIS Server sin ejecutar un X Server (incluido en Linux Desktop) y si también desea usar el comando GetPrint
, entonces debe instalar un X Server falso y decirle a QGIS Server que lo use. Puede hacerlo siguiendo el Proceso de instalación de Xvfb.
11.1.4. Follow Along: Crea otro host virtual
Creemos otro host virtual Apache que apunte al servidor QGIS. Puede elegir el nombre que desee (coco.bango
, super.duper.training
, example.com
, etc.) pero por simplicidad vamos a usar myhost
.
Configuremos el nombre
myhost
para que apunte a la IP localhost agregando127.0.0.1 x
a/etc/hosts
con el siguiente comando:sh -c" echo ' 127.0.0.1 myhost'>> /etc/hosts"
o editando manualmente el archivo congedit/etc/hosts
.Podemos comprobar que
myhost
apunta al localhost ejecutando en la terminal el comandoping myhost
que debería generar:
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
Intentemos si podemos acceder a QGIS Server desde el sitio
myhost
haciendo:curl http://myhost/cgi-bin/qgis_mapserv.fcgi
o accediendo a la url desde su navegador de caja Debian. Probablemente obtendrá:
<!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 no sabe que se supone que debe responder a las solicitudes que apuntan al servidor llamado
myhost
. Para configurar el host virtual, la forma más sencilla sería crear un archivomyhost.conf
en el directorio/etc/apache2/sites-available
que tenga el mismo contenido queqgis.demo.conf
excepto la líneaServerName
que debería serServerName myhost
. También puede cambiar dónde van los registros, ya que de lo contrario se compartirían los registros de los dos hosts virtuales, pero esto es opcional.Ahora habilitemos el host virtual con
a2ensite myhost.conf
y luego recarguemos el servicio Apache conservice apache2 reload
.Si intenta nuevamente acceder a la url http://myhost/cgi-bin/qgis_mapserv.fcgi notará que todo está funcionando ahora!
11.1.5. In Conclusion
Aprendió cómo instalar diferentes versiones de QGIS Server desde paquetes, cómo configurar Apache con QGIS Server, en distribuciones Linux basadas en Debian.
11.1.6. What’s Next?
Ahora que ha instalado QGIS Server y es accesible a través del protocolo HTTP, necesitamos aprender cómo acceder a algunos de los servicios que puede ofrecer. El tema de la siguiente lección es aprender cómo acceder a los servicios WMS de QGIS Server.