Ubuntu Server 22.04に、QGIS Serverをインストールします。
記事の目次
使用する環境を確認する!
使用する環境を確認します。
$ hostnamectl Static hostname: vmsgis21 Icon name: computer-vm Chassis: vm Machine ID: e18a27fbe8ac4dbcb89641f30b005d2e Boot ID: 68b9de348cf84f0ea516901b323f91b9 Virtualization: oracle Operating System: Ubuntu 22.04.3 LTS Kernel: Linux 5.15.0-84-generic Architecture: x86-64 Hardware Vendor: innotek GmbH Hardware Model: VirtualBox
前提パッケージをインストールする!
今回使用するUbuntu Server 22.04では、前提となるパッケージはインストール済みでした。
$ sudo apt install gnupg software-properties-common Reading package lists... Done Building dependency tree... Done Reading state information... Done gnupg is already the newest version (2.2.27-3ubuntu2.1). gnupg set to manually installed. software-properties-common is already the newest version (0.99.22.7). software-properties-common set to manually installed. 0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
QGISのリポジトリを登録する!
QGISのキーリングをダウンロードします。
$ sudo wget -O /etc/apt/keyrings/qgis-archive-keyring.gpg https://download.qgis.org/downloads/qgis-archive-keyring.gpg --2024-01-06 08:07:01-- https://download.qgis.org/downloads/qgis-archive-keyring.gpg Resolving download.qgis.org (download.qgis.org)... 104.21.71.41, 172.67.143.23, 2606:4700:3035::ac43:8f17, ... Connecting to download.qgis.org (download.qgis.org)|104.21.71.41|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 1969 (1.9K) Saving to: ‘/etc/apt/keyrings/qgis-archive-keyring.gpg’ /etc/apt/keyrings/qgis-archiv 100%[=================================================>] 1.92K --.-KB/s in 0.003s 2024-01-06 08:07:02 (726 KB/s) - ‘/etc/apt/keyrings/qgis-archive-keyring.gpg’ saved [1969/1969]
QGISのリポジトリを登録します。
$ sudo cat <<EOF | sudo tee /etc/apt/sources.list.d/qgis.sources Types: deb deb-src URIs: https://qgis.org/ubuntu Suites: jammy Architectures: amd64 Components: main Signed-By: /etc/apt/keyrings/qgis-archive-keyring.gpg EOF Types: deb deb-src URIs: https://qgis.org/ubuntu Suites: jammy Architectures: amd64 Components: main Signed-By: /etc/apt/keyrings/qgis-archive-keyring.gpg
リポジトリの情報を最新化します。
$ sudo apt update
QGIS Serverをインストールする!
$ sudo apt install qgis qgis-plugin-grass qgis-server
インストール状態を確認します。
$ /usr/lib/cgi-bin/qgis_mapserv.fcgi Application path not initialized Application path not initialized Application path not initialized Application path not initialized Warning 1: Unable to find driver ECW to unload from GDAL_SKIP environment variable. Warning 1: Unable to find driver ECW to unload from GDAL_SKIP environment variable. Warning 1: Unable to find driver JP2ECW to unload from GDAL_SKIP environment variable. "Loading native module /usr/lib/qgis/server/libdummy.so" "Loading native module /usr/lib/qgis/server/liblandingpage.so" "Loading native module /usr/lib/qgis/server/libwcs.so" "Loading native module /usr/lib/qgis/server/libwfs.so" "Loading native module /usr/lib/qgis/server/libwfs3.so" "Loading native module /usr/lib/qgis/server/libwms.so" "Loading native module /usr/lib/qgis/server/libwmts.so" Content-Length: 0 Location: http:/index.json Server: QGIS FCGI server - QGIS version 3.34.2-Prizren Status: 302
サンプルのQGISのプロジェクトを配置する!
動作確認のためサンプルのQGISのプロジェクトを配置します。
$ sudo apt install unzip $ sudo mkdir -p /home/qgis/projects/ $ cd /home/qgis/projects/ $ sudo wget https://github.com/qgis/QGIS-Training-Data/archive/release_3.22.zip $ sudo unzip release_3.22.zip $ sudo mv QGIS-Training-Data-release_3.22/exercise_data/qgis-server-tutorial-data/world.qgs . $ sudo mv QGIS-Training-Data-release_3.22/exercise_data/qgis-server-tutorial-data/naturalearth.sqlite .
Apacheをインストールする!
QGIS Serverを動作させるWebサーバとして、Apacheをインストールします。
$ sudo apt install apache2 libapache2-mod-fcgid
仮想ホストを作成する!
QGIS Server用の仮想ホストを作成します。
sudo cat <<EOF | sudo tee /etc/apache2/sites-available/qgis.demo.conf <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName qgis.demo DocumentRoot /var/www/html # Apache logs (different than QGIS Server log) ErrorLog ${APACHE_LOG_DIR}/qgis.demo.error.log CustomLog ${APACHE_LOG_DIR}/qgis.demo.access.log combined # Longer timeout for WPS... default = 40 FcgidIOTimeout 120 FcgidInitialEnv LC_ALL "en_US.UTF-8" FcgidInitialEnv PYTHONIOENCODING UTF-8 FcgidInitialEnv LANG "en_US.UTF-8" # QGIS log FcgidInitialEnv QGIS_SERVER_LOG_STDERR 1 FcgidInitialEnv QGIS_SERVER_LOG_LEVEL 0 # default QGIS project SetEnv QGIS_PROJECT_FILE /home/qgis/projects/world.qgs # QGIS_AUTH_DB_DIR_PATH must lead to a directory writeable by the Server's FCGI process user FcgidInitialEnv QGIS_AUTH_DB_DIR_PATH "/home/qgis/qgisserverdb/" FcgidInitialEnv QGIS_AUTH_PASSWORD_FILE "/home/qgis/qgisserverdb/qgis-auth.db" # Set pg access via pg_service file SetEnv PGSERVICEFILE /home/qgis/.pg_service.conf FcgidInitialEnv PGPASSFILE "/home/qgis/.pgpass" # if qgis-server is installed from packages in debian based distros this is usually /usr/lib/cgi-bin/ # run "locate qgis_mapserv.fcgi" if you don't know where qgis_mapserv.fcgi is ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin/"> AllowOverride None Options +ExecCGI -MultiViews -SymLinksIfOwnerMatch Require all granted </Directory> <IfModule mod_fcgid.c> FcgidMaxRequestLen 26214400 FcgidConnectTimeout 60 </IfModule> </VirtualHost> EOF
仮想ホスト用のディレクトリを作成します。
$ sudo mkdir -p /var/log/qgis/ $ sudo chown www-data:www-data /var/log/qgis $ sudo mkdir -p /home/qgis/qgisserverdb $ sudo chown www-data:www-data /home/qgis/qgisserverdb
仮想ホストを有効化します。
$ sudo a2enmod fcgid $ sudo a2ensite qgis.demo $ sudo a2dissite 000-default.conf $ sudo systemctl restart apache2
QGIS Serverにアクセスするためにhostsを編集する!
QGIS Serverにアクセスするクライアント用のマシンのhostsにQGIS Serverを登録します。
XXX.XXX.XXX.XXX qgis.demo
QGISサーバにアクセスする!
以下のURLでアクセスしてみます。XMLファイルが表示されれば成功です。
http://qgis.demo/cgi-bin/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
QGISサーバのプロジェクトにアクセスする!
以下のURLでQGISサーバのプロジェクトにアクセスしてみます。世界地図が表示されれば成功です。
http://qgis.demo/cgi-bin/qgis_mapserv.fcgi? MAP=/home/qgis/projects/world.qgs& LAYERS=countries& SERVICE=WMS& VERSION=1.3.0& REQUEST=GetMap& CRS=EPSG:4326& WIDTH=400& HEIGHT=200& BBOX=-90,-180,90,180
おわりに
Ubuntu Server 22.04を使用すると、QGISのリポジトリから容易にQGIS Serverをインストールすることができます。
関連記事
参考情報
QGIS Server - Installation on Debian-based systems