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