11.1. Lesson: QGIS Serverをインストールする

このレッスンの目標: Debian Stretchに QGIS Server をインストールする方法を学ぶこと。ごくわずかな変更で、Ubuntuやその派生版のようなDebianベースのディストリビューションでもこのレッスンに従うことができます。

注釈

Ubuntuでは、管理者権限を必要とするコマンドの前に sudo を付けて、通常のユーザーを使用することができます。Debianでは、sudo を使用せずに、管理者 (root) として作業することができます。

11.1.1. moderate Follow Along: パッケージからインストールする

このレッスンでは、ここ にあるパッケージからのインストールのみを行います。

QGIS Serverを以下でインストールします:

apt install qgis-server --no-install-recommends --no-install-suggests

# if you want to install server plugins, also:
apt install python3-qgis

QGIS Serverは、QGISデスクトップ(付属のXサーバーと共に)が同じマシンにインストールされていない状態で、使用する必要があります。

11.1.2. moderate Follow Along: QGISサーバー実行可能ファイル

QGIS Server実行可能ファイルは、 qgis_mapserv.fcgi です。 /usr/lib/cgi-bin/qgis_mapserv.fcgi のような何かを出力する find / -name 'qgis_mapserv.fcgi' を実行して、どこにインストールされたかを確認できます。

オプションとして、この時点でコマンドラインテストを行いたい場合は、/usr/lib/cgi-bin/qgis_mapserv.fcgi --version コマンドを実行すると、次のような出力が得られるはずです:

QGIS 3.21.0-Master 'Master' (1c70953f1e)
QGIS code revision 1c70953f1e
Qt version 5.15.2
Python version 3.9.5
GDAL/OGR version 3.2.2
PROJ version 7.2.1
EPSG Registry database version v10.008 (2020-12-16)
GEOS version 3.9.0-CAPI-1.16.2
SQLite version 3.34.1
OS Ubuntu 21.04

WMSのリクエストの方法は後述します。

11.1.3. hard HTTPサーバー構築

インストールしたQGIS Serverにインターネットブラウザからアクセスするためには、HTTPサーバーを使用する必要があります。Apache HTTP サーバーのインストール方法は Apache HTTP サーバー セクションで詳しく説明しています。

注釈

(Linuxデスクトップに含まれる)X Serverを起動せずにQGIS Serverをインストールした場合で、 GetPrint コマンドを使いたいときは、偽のXサーバをインストールして、QGIS Serverにそれを使うように指示する必要があります。これは Xvfb installation process に従って行うことができます。

11.1.4. moderate Follow Along: 別の仮想ホストを作成

QGIS Serverを指す別のApacheの仮想ホストを作成してみましょう。好きな名前を選択できます( coco.bangosuper.duper.trainingexample.com、など)が、単純化のために myhost を使用するつもりです。

  • /etc/hosts127.0.0.1 x を追加して myhost という名前がローカルホストの IP を指すように次のコマンドで設定するか: sh -c "echo '127.0.0.1 myhost' >> /etc/hosts" または gedit /etc/hosts でファイルを手動で編集してください。

  • ターミナルで ping myhost コマンドを実行することによって、 myhost がlocalhostを指していることを確認できます。

qgis@qgis:~$ ping myhost
PING myhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.024 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.029 ms
  • curl http://myhost/cgi-bin/qgis_mapserv.fcgi したり、DebianのボックスブラウザからURLにアクセスすることによって、 myhost サイトからQGIS Serverにアクセスできるかどうか試してみましょう。おそらく得られるのは:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /cgi-bin/qgis_mapserv.fcgi was not found on this server.</p>
<hr>
<address>Apache/2.4.25 (Debian) Server at myhost Port 80</address>
</body></html>
  • Apacheは myhost という名前のサーバーを指すリクエストに答えることになっていることを知りません。バーチャルホストを設定するのに一番簡単な方法は、 /etc/apache2/sites-available ディレクトリに myhost.conf ファイルを作ることです。このファイルの内容は qgis.demo.conf と同じですが、 ServerName 行は ServerName myhost にする必要があります。またこれは任意ですが、ログを保存する場所を変更することもできます。そうしないときは、2つのバーチャルホストのログが共有されます。

  • 次に、a2ensite myhost.conf でバーチャルホストを有効にし、service apache2 reload で Apache サービスを再ロードしてみましょう。

  • 再度 http://myhost/cgi-bin/qgis_mapserv.fcgi URLにアクセスするために試してみると、すべてが今稼働していることに気づくでしょう!

11.1.5. In Conclusion

DebianベースのLinuxディストリビューション上で、QGIS ServerでApacheを設定する方法を、パッケージから異なるQGIS Serverのバージョンをインストールする方法を学びました。

11.1.6. What's Next?

QGIS Serverをインストールし、HTTPプロトコルでアクセスできるようになったので、提供できるサービスのいくつかにアクセスする方法を学ぶ必要があります。次のレッスンのテーマは、QGIS ServerのWMSサービスにアクセスする方法を学ぶことです。