11.1. Lesson: QGIS Serverをインストールする
このレッスンの目標: Debian Stretchに QGIS Server をインストールする方法を学ぶこと。ごくわずかな変更で、Ubuntuやその派生版のようなDebianベースのディストリビューションでもこのレッスンに従うことができます。
注釈
Ubuntuでは、管理者権限を必要とするコマンドの前に sudo
を付けて、通常のユーザーを使用することができます。Debianでは、sudo
を使用せずに、管理者 (root
) として作業することができます。
11.1.1. 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. 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. HTTPサーバー構築
インストールしたQGIS Serverにインターネットブラウザからアクセスするためには、HTTPサーバーを使用する必要があります。Apache HTTP サーバーのインストール方法は Apache HTTP サーバー セクションで詳しく説明しています。
注釈
(Linuxデスクトップに含まれる)X Serverを起動せずにQGIS Serverをインストールした場合で、 GetPrint
コマンドを使いたいときは、偽のXサーバをインストールして、QGIS Serverにそれを使うように指示する必要があります。これは Xvfb installation process に従って行うことができます。
11.1.4. Follow Along: 別の仮想ホストを作成
QGIS Serverを指す別のApacheの仮想ホストを作成してみましょう。好きな名前を選択できます( coco.bango
、 super.duper.training
、 example.com
、など)が、単純化のために myhost
を使用するつもりです。
/etc/hosts
に127.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サービスにアクセスする方法を学ぶことです。