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. moderate 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. moderate 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. hard 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. moderate 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 agregando 127.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 con gedit/etc/hosts.

  • Podemos comprobar que myhost apunta al localhost ejecutando en la terminal el comando ping 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 archivo myhost.conf en el directorio /etc/apache2/sites-available que tenga el mismo contenido que qgis.demo.conf excepto la línea ServerName que debería ser ServerName 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 con service 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.