5. Plugins

5.1. Lista de plugins

Plugins também podem ser instalados no Servidor QGIS.

Alguns plugins projetados para servidor podem ser encontrados no repositório oficial QGIS.

Instalar apenas plugins que você precisa para seu próprio propósito. No servidor QGIS, os plugins são como ganchos no servidor QGIS, eles podem alterar entradas ou saídas do servidor QGIS. Eles podem produzir resultados inesperados se você não souber como o plugin funciona. Por favor, consulte a respectiva documentação ou o aplicativo que precisa de plugins do servidor QGIS para saber qual plugin pode ser útil para você.

5.2. Localização dos plugins

By default, on Debian based systems, QGIS Server will look for plugins located in /usr/lib/qgis/plugins. The default value is displayed when QGIS Server is starting, in the logs. It’s possible to set a custom path by defining the environment variable QGIS_PLUGINPATH in the web server configuration.

5.3. Instalação

5.3.1. Manualmente com um ZIP

Como exemplo, para instalar o plugin HelloWorld para testar o servidor, usando uma pasta específica, primeiro é necessário criar um diretório para manter os plugins do servidor. Isto será especificado na configuração do host virtual e passado para o servidor através de uma variável de ambiente:

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

Aviso

De acordo com sua descrição, o plugin HelloServer é projetado para fins de desenvolvimento e demonstração. Não guarde este plugin para produção se você não precisar dele.

5.3.2. Com uma ferramenta de linha de comando

Se você precisar instalar e atualizar regularmente plugins que são armazenados no repositório de plugins QGIS, você pode utilizar o QGIS-Plugin-Manager. É uma ferramenta para ajudá-lo a gerenciar os plugins a partir da linha de comando.

A instalação está usando pip. Instalar em um ambiente virtual é uma boa prática, mas não é obrigatório:

pip3 install qgis-plugin-manager

Para atualizar a ferramenta:

pip3 install --upgrade qgis-plugin-manager

Então, você pode utilizar o executável qgis-plugin-manager da linha de comando:

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    |
------------------------------------------------------------------------------------------------------------------------------------------------------

Sugerimos que você leia a documentação completa no arquivo leiame para saber como instalar ou atualizar plugins com esta ferramenta.

5.4. Configuração do Servidor HTTP

5.4.1. Apache

Para poder usar plugins de servidor, FastCGI precisa saber onde procurar. Portanto, temos que modificar o arquivo de configuração do Apache para indicar a variável de ambiente QGIS_PLUGINPATH para FastCGI:

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

Moreover, a basic HTTP authorization is necessary to play with the HelloWorld plugin previously introduced. So we have to update the Apache configuration file a last time:

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

Em seguida, reinicie o Apache:

systemctl restart apache2

5.5. Como usar um plug-in

Teste o servidor com o plugin HelloWorld:

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

You can have a look at the default GetCapabilities of the QGIS server at:

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