プラグイン

インストール

サーバーのテスト用にHelloWorldサンプルプラグインをインストールするには、まずサーバープラグインを保持するディレクトリを作成する必要があります。これは仮想ホスト構成で指定され、環境変数を介してサーバーに渡されます:

$ sudo mkdir -p /opt/qgis-server/plugins
$ cd /opt/qgis-server/plugins
$ sudo wget https://github.com/elpaso/qgis-helloserver/archive/master.zip
# In case unzip was not installed before:
$ sudo apt-get install unzip
$ sudo unzip master.zip
$ sudo mv qgis-helloserver-master HelloServer

HTTPサーバー構成

Apache

サーバープラグインを使用できるようにするには、FastCGIはどこから見えるかを知る必要があります。したがって、 QGIS_PLUGINPATH 環境変数をFastCGIに示すように、Apache構成ファイルを変更する必要があります。

FcgidInitialEnv QGIS_SERVER_LOG_FILE /tmp/qgis-000.log
FcgidInitialEnv QGIS_SERVER_LOG_LEVEL 0
FcgidInitialEnv QGIS_PLUGINPATH "/opt/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>

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

$ sudo a2ensite 001-qgis-server
$ sudo service apache2 restart

ちなみに

多くのノードを持つ地物を使用して作業する場合、新しい地物の変更と追加は失敗します。この場合、次のコードを 001-qgis-server.conf ファイルに挿入できます:

<IfModule mod_fcgid.c>
FcgidMaxRequestLen 26214400
FcgidConnectTimeout 60
</IfModule>

プラグインの使用方法

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

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

http://localhost/cgi-bin/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities で、QGISサーバーのデフォルトのGetCapabilitiesを見ることができます。