5. Complementos

5.1. Lista de complementos

Plugins can also be installed on QGIS Server.

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

Install only plugins you need for your own purpose. On QGIS server, plugins are like hooks into QGIS server, they can alter inputs or outputs of QGIS server. They can produce unexpected result if you don’t know how the plugin works. Please refer to their respective documentation or the application that needs QGIS server plugins to know which plugin can be useful for you.

5.2. Ubicación de complementos

Por defecto, 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

As an example, to install the HelloWorld plugin for testing the server, using a specific folder, you first have to create a directory to hold server plugins. This will be specified in the virtual host configuration and passed on to the server through an environment variable:

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

Advertencia

According to its description, HelloServer plugin is designed for development and demonstration purposes. Do not keep this plugin for production if you don’t need it.

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

To upgrade the tool:

pip3 install --upgrade 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