5. Complementos

5.1. Lista de complementos

Los complementos también se pueden instalar en QGIS Server. Pueden añadir nuevas funcionalidades o alterar las existentes de QGIS Server.

En el repositorio oficial de QGIS se pueden encontrar algunos complementos diseñados para el servidor.

5.2. Ubicación de complementos

De formar predeterminada, en los sistemas basados en Debian, QGIS Server buscará los complementos ubicados en /usr/lib/qgis/plugins. El valor por defecto se muestra cuando QGIS Server se inicia, en los registros. Es posible establecer una ruta personalizada definiendo la variable de entorno QGIS_PLUGINPATH en la configuración del servidor web.

5.3. Instalación

5.3.1. Manualmente con un ZIP

Para instalar el complemento de ejemplo HelloWorld para probar el servidor, utilizando una carpeta específica, primero hay que crear un directorio para albergar los plugins del servidor. Esto se especificará en la configuración del host virtual y se pasará al servidor a través de una variable de entorno:

mkdir -p /var/www/qgis-server/plugins
cd /var/www/qgis-server/plugins
wget https://github.com/elpaso/qgis-helloserver/archive/master.zip
unzip master.zip
mv qgis-helloserver-master HelloServer

5.3.2. Con una herramienta de línea de comando

Si necesita instalar y actualizar regularmente los complementos que se almacenan en el repositorio de complementos de QGIS, puede utilizar el QGIS-Plugin-Manager. Es una herramienta que te ayuda a gestionar los complementos desde la línea de comandos.

La instalación se realiza con pip. La instalación en un entorno virtual es una buena práctica pero no es necesaria:

pip3 install qgis-plugin-manager

A continuación, puede utilizar el ejecutable qgis-plugin-manager desde la línea de comandos:

cd /var/www/qgis-server/plugins
qgis-plugin-manager list

QGIS server version 3.19.0
List all plugins in /var/www/qgis-server/plugins

------------------------------------------------------------------------------------------------------------------------------------------------------
|  Folder                  |  Name            |  Version  |  Experimental  |  QGIS min  |  QGIS max  |  Author                  |  Action ⚠          |
------------------------------------------------------------------------------------------------------------------------------------------------------
|wfsOutputExtension        |wfsOutputExtension|1.6.2      |                |3.0         |            |3Liz                      |                    |
|qgis_server_render_geojson|GeoJson Renderer  |v0.4       |                |3.4         |            |Matthias Kuhn (OPENGIS.ch)|                    |
|DataPlotly                |Data Plotly       |3.7.1      |                |3.4         |3.98        |Matteo Ghetta (Faunalia)  |Upgrade to 3.8.1    |
------------------------------------------------------------------------------------------------------------------------------------------------------

Le sugerimos que lea la documentación completa en el archivo readme para saber cómo instalar o actualizar complementos con esta herramienta.

5.4. Configuración del servidor HTTP

5.4.1. Apache

Para poder utilizar los complementos del servidor, FastCGI necesita saber dónde buscar. Así que tenemos que modificar el archivo de configuración de Apache para indicar la variable de entorno QGIS_PLUGINPATH a FastCGI:

FcgidInitialEnv QGIS_PLUGINPATH "/var/www/qgis-server/plugins"

Además, es necesaria una autorización HTTP básica para jugar con el complemento HelloWorld introducido anteriormente. Entonces tenemos que actualizar el archivo de configuración de Apache por última vez:

# Needed for QGIS HelloServer plugin HTTP BASIC auth
<IfModule mod_fcgid.c>
    RewriteEngine on
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

A continuación, reinicie Apache:

systemctl restart apache2

5.5. Como usar un complemento

Pruebe el servidor con el complemento HelloWorld:

wget -q -O - "http://localhost/cgi-bin/qgis_mapserv.fcgi?SERVICE=HELLO"
 HelloServer!

Puede echar un vistazo a las GetCapabilities predeterminadas del servidor QGIS en:

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