5. 插件

5.1. 插件列表

插件也可以安装在QGIS服务器上。

一些为服务器设计的插件可以在官方网站上找到 QGIS repository

只安装你自己需要的插件。在QGIS服务器上,插件就像钩子一样连接到QGIS服务器上,它们可以改变QGIS服务器的输入或输出。如果你不知道插件的工作原理,它们可能会产生意想不到的结果。请参考他们各自的文档或需要QGIS服务器插件的应用程序,以了解哪个插件对您有用。

5.2. 插件的位置

默认情况下,在基于Debian的系统上,QGIS服务器将查找位于 /usr/lib/qgis/plugins 。当QGIS服务器启动时,会在日志中显示默认值。可以通过定义环境变量来设置自定义路径 QGIS_PLUGINPATH 在Web服务器配置中。

5.3. 安装

5.3.1. 使用ZIP手动

例如,要安装 HelloWorld 插件用于测试服务器,使用特定的文件夹,你首先要创建一个存放服务器插件的目录。这将在虚拟主机配置中指定,并通过环境变量传递给服务器:

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

警告

根据ITS description HelloServer插件专为开发和演示目的而设计。如果您不需要此插件,请不要将其保留用于生产。

5.3.2. 使用命令行工具

如果您需要安装和定期升级存储在QGIS插件存储库中的插件,您可以使用 QGIS-Plugin-Manager 。这是一个帮助你从命令行管理插件的工具。

安装使用的是pip。在虚拟环境中安装是一种很好的做法,但不是必需的:

pip3 install qgis-plugin-manager

要升级工具,请执行以下操作:

pip3 install --upgrade qgis-plugin-manager

然后,您可以使用 qgis-plugin-manager 可从命令行执行:

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

我们建议您阅读完整的文档 readme file 了解如何使用此工具安装或升级插件。

5.4. HTTP服务器配置

5.4.1. 阿帕奇

为了能够使用服务器插件,FastCGI需要知道在哪里查找。因此,我们必须修改APACHE配置文件以指示 QGIS_PLUGINPATH FastCGI的环境变量:

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

此外,使用前面介绍的HelloWorld插件需要基本的HTTP授权。因此,我们必须最后一次更新阿帕奇配置文件:

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

然后,重新启动阿帕奇:

systemctl restart apache2

5.5. 如何使用插件

使用HelloWorld插件测试服务器:

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

您可以在以下位置查看QGIS服务器的默认GetCapability:

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