5. プラグイン

5.1. プラグインのリスト

プラグインはQGIS Serverにもインストールすることができます。

サーバー向けに設計されたプラグインのいくつかは、公式の QGIS repository に見つかります。

自分の目的に必要なプラグインだけをインストールしてください。QGISサーバでは、プラグインはQGISサーバへのフックのようなもので、QGISサーバの入出力を変更することができます。プラグインがどのように動作するのかを知らないと、予期しない結果をもたらす可能性があります。どのプラグインが役に立つかは、それぞれのドキュメントやQGISサーバのプラグインを必要とするアプリケーションを参照してください。

5.2. プラグインの場所

デフォルトで、Debian ベースのシステムでは、QGIS Server は /usr/lib/qgis/plugins にあるプラグインを探します。デフォルト値はQGIS Serverの起動時にログに表示されます。ウェブサーバの設定で環境変数 QGIS_PLUGINPATH を定義することで、カスタムパスを設定することができます。

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

警告

説明文 によると、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 ファイル にある完全なドキュメントを読むことをお勧めします。

5.4. HTTPサーバー構成

5.4.1. Apache

サーバー プラグインが使えるようにするには、FastCGI がどこを見るか知る必要があります。そのため、FastCGI に QGIS_PLUGINPATH 環境変数を示すように Apache 設定ファイルを変更する必要があります:

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

さらに、以前に紹介したHelloWorldプラグインで遊ぶためには、基本的なHTTP認証が必要です。そこで、最後にApacheの設定ファイルを更新する必要があります:

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

それから、Apacheを再起動します:

systemctl restart apache2

5.5. プラグインの使用方法

HelloWorldのプラグインでサーバーをテストします:

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

QGISサーバーのデフォルトのGetCapabilitiesをご覧ください:

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