Instalar QGIS Server en Windows utilizando XAMPP

QGIS Server es una aplicación de código abierta que proporciona servicios WMS, WFS y WCS. QGIS Server utiliza un proyecto de QGIS como back-end para crear el servicio. Los mismos datos y estilos de QGIS se mostrarán en el servicio WMS. Es por tanto una herramienta muy útil para todos los usuarios de QGIS, pues pueden crear servicios de OGC (Open Geospatial Consortium) directamente desde los datos de su proyecto.

En este artículo veremos cómo instalar QGIS Server en Windows utilizando un servidor XAMPP.

¿Qué es QGIS Server?

QGIS Server es una aplicación FastCGI/CGI (Common Gateway Interface) escrita en C ++ que funciona junto con un servidor web como por ejemplo, Apache, o Nginx.

QGIS Server puede servir datos de acuerdo con los protocolos estándar descritos por Open Geospatial Consortium (OGC):

Instalar XAMPP

El primer paso para disponer de QGIS Server funcionando es instalar Apache. En este caso instalaremos un servidor XAMPP.

XAMPP es una distribución de Apache completamente gratuita y fácil de instalar que contiene MariaDB, PHP y Perl.

XAMPP es un acrónimo en que la X hace referencia al sistema operativo utilizado.

  • WAMP, para Windows.
  • LAMP, para Linux.
  • MAMP, para MAC OS X.

Utilizamos XAMPP para escribir scripts de PHP y realizar las conexiones a las bases de datos.

En la página de XAMPP descargamos la última versión para Windows. Es muy sencillo de instalar, pues una vez que ejecutamos el archivo descargado, se abre un instalador que nos guía en la instalación y nos permite elegir los componentes:

En la imagen anterior se ha seleccionado MySQL que, aunque realmente no es imprescindible para QGIS Server y no sea la base de datos más utilizada en GIS, es una buena alternativa como ya vimos en otro artículo de este blog.

Una vez completada la instalación tendremos disponible el panel de control de XAMPP que nos permite arrancar y parar el servidor.

Arrancaremos Apache haciendo clic sobre el botón Start. Con esto será suficiente.

Instalar QGIS Server

Instalaremos QGIS Server (y QGIS Desktop si no lo tienes ya) desde OSGEO4W:

Cuando tengamos abierto el instalador debemos seleccionar opciones avanzadas:

En la siguiente ventana dejamos la opción por defecto: Instalación desde internet.

Ahora nos indica el directorio para la instalación. Clic en Siguiente:

Nos pide el directorio local, dejamos la opción por defecto y hacemos clic en siguiente.

Elegimos los parámetros de conexión que nos ofrece por defecto. Clic en siguiente:

Ahora indicamos el sitio de descarga.

Se nos abrirá el selector de paquetes de OSGeo4W:

  • En el apartado Desktop seleccionamos qgis.

  • En el apartado Web seleccionamos QGIS Server y mapserver:

Para que no haya problemas, es recomendable que la versión de QGIS Server sea la misma que la versión de escritorio de QGIS.

Cuando lo tengamos hacemos clic en Siguiente y comenzará la instalación.

Configurar XAMPP

Llegados a este punto necesitaremos configurar el archivo de configuración de Apache para que “apunte” a QGIS Server.

Tenemos que editar el archivo httpd.conf que si has seguido las instrucciones que hemos indicado se encontrará en: C:\xampp\apache\conf\

Busca en torno a la línea 370 y cambia:

ScriptAlias /cgi-bin/ "C:/xampp/cgi-bin/"

por

ScriptAlias /cgi-bin/ "C:/OSGeo4W64/apps/qgis/bin/"

Busca en torno a la línea 387 y cambia:

<Directory "C:/xampp/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

por:

<Directory "C:/OSGeo4W64/apps/qgis/bin">
    SetHandler cgi-script
    AllowOverride None
    Options ExecCGI
    Order allow,deny
    Allow from all
    Require all granted
</Directory>

Busca en torno a la línea 438 y cambia:

AddHandler cgi-script .cgi .pl .asp

por:

AddHandler cgi-script .cgi .pl .asp .exe

Al final de httpd.conf añade las siguientes líneas:

SetEnv GDAL_DATA "C:\OSGeo4W64\share\gdal"
SetEnv QGIS_AUTH_DB_DIR_PATH "C:\OSGeo4W64\apps\qgis\resources"
SetEnv PYTHONHOME "C:\OSGeo4W64\apps\Python37"
SetEnv PATH "C:\OSGeo4W64\bin;C:\OSGeo4W64\apps\qgis\bin;C:\OSGeo4W64\apps\Qt5\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem"
SetEnv QGIS_PREFIX_PATH "C:\OSGeo4W64\apps\qgis"
SetEnv QT_PLUGIN_PATH "C:\OSGeo4W64\apps\qgis\qtplugins;C:\OSGeo4W64\apps\Qt5\plugins"

Comprobando la instalación

Ahora abre una ventana de tu navegador y escribe en la barra de direcciones:

http://localhost/cgi-bin/qgis_mapserv.fcgi.exe?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities

Obtendrás el XML de capacidades del servicio:

Servidor de QGIS – Publicación de servicios

Ahora que tenemos el servidor trabajando, podremos publicar como un servicio de OGC cualquiera de nuestros proyectos de QGIS.

Abrimos QGIS y vamos al menú superior Proyecto > Propiedades. En la ventana Propiedades del proyecto veremos la pestaña Servidor de QGIS.

En este menú del servidor de QGIS podemos acceder a las propiedades de los servicios y a su configuración:

  • Capacidades del servicio.
  • Capacidades WMS.
  • Capacidades WMTS.
  • Capacidades WFS.
  • Capacidades WCS.
  • Comprobación de la configuración.

Puedes hacer una petición a un servicio WMS, de la siguiente forma:

http://localhost/cgi-bin/qgis_mapserv.fcgi.exe?
MAP=C:/Curso_QGIS_Server/datos/world.qgs&
LAYERS=countries&
SERVICE=WMS&
VERSION=1.3.0&
REQUEST=GetMap&
CRS=EPSG:4326&
WIDTH=600&
HEIGHT=600&
BBOX=-90,-180,90,180

Como resultado obtenemos:

Let’s connect!

Date de alta en nuestra newsletter y te enviaremos GRATIS el ebook que te ayudará a impulsar tu perfil GIS:
Vitaminas MappingGIS

Tan solo una vez al mes recibirás las últimas novedades del sector GIS y de nuestros cursos

8 comentarios en «Instalar QGIS Server en Windows utilizando XAMPP»

  1. Disculpa, una vez hago todo el proceso, al entrar al local host me salen tres ventanas emergentes:

    La ejecucion de codigo no puede continuar porque no se encontró «libfcgi.dll» luego «Qt5Gui.dll» luego «Qt5core.dll»

    y al final:

    Internal Server Error
    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator at postmaster@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

    More information about this error may be available in the server error log.

    ¿que podra ser?

    Responder
  2. Me está dando este error
    12:03:07 p. m. [Apache] Status change detected: stopped
    12:03:07 p. m. [Apache] Error: Apache shutdown unexpectedly.
    12:03:07 p. m. [Apache] This may be due to a blocked port, missing dependencies,
    12:03:07 p. m. [Apache] improper privileges, a crash, or a shutdown by another method.
    12:03:07 p. m. [Apache] Press the Logs button to view error logs and check
    12:03:07 p. m. [Apache] the Windows Event Viewer for more clues
    12:03:07 p. m. [Apache] If you need more help, copy and post this
    12:03:07 p. m. [Apache] entire log window on the forums

    Responder
    • Hola Ana:
      Tienes que comprobar en XAMPP que el puerto que estas utilizando no está ocupado. Puedes utilizar el botón Netstat para ver la lista de puertos. En caso de conflicto deberás configurar Apache editando el archivo httpd.conf para definir el nuevo puerto.
      Saludos

      Responder
  3. buenos días,
    Mi pregunta es sobre la publicación de un WMTS con QGIS server a partir de imágenes en formato ecw.
    ¿ Se puede hacer? ¿Cómo gestiona el cacheo de imágenes y almacenamiento de la cache?
    Saludos

    Responder

Deja un comentario