🗺️

Mapserver環境を構築する

2023/02/27に公開

オープンデータが広く公開されている中で、WMSでそれらを表示するための方法が少し少ないなと思って記事にする。

WMSサーバを提供できるOSSは以下の3つを見つけられた。

  • mapserver
  • geoserver
  • examind

なんとなくgeoserverはGUIでの設定など情報も多そうだったけど、Mapserverでは公式サイトにWMS-T(Time dimension付きのWMS)も記載あったので勉強もかねてMapserverを選択。

https://mapserver.org/ja/introduction.html#installation-and-requirements

をベースに今回のdebian環境に合わせてインストールする。

本ページの前提

プロンプトの 「#」はroot権限(もしくはsudo作業)、「%」は一般ユーザ権限を示しています。

今回の環境

構成 今回の環境
HW esxi (vmware)
os Debian 11 (bullseye)
cpu 1 vcpu
mem 4 GB
disk 8 GB

Debian 11のインストール

ここは通常通りにインストール。
sshでの作業なのでデスクトップ環境なしで、SSHサーバ標準システムユーティリティだけを追加でインストール。
Webサーバ(Apacheなど)は後でaptでインストールする。

ipv6の無効化

家のwifiルータもIPv6対応のため、デフォルトでIPv6が有効化されてしまい、作業しずらいので、無効化する。

# cp /etc/sysctl.conf /etc/sysctl.conf.org
# echo net.ipv6.conf.all.disable_ipv6 = 1 >> /etc/sysctl.conf
# sysctl -p
# ifdown ens192
# ifup ens192

こまごまとした作業用パッケージのインストール

パッケージのダウンロードにcurlを使うのでダウンロード

# apt-get install -y curl

Mapserverのインストール

Webサービス(apache2)のインストール

aptでapache2をインストールして、security.confのServerTokensのみProdに変更。

# apt-get install -y apache2
# cp /etc/apache2/conf-enabled/security.conf /etc/apache2/conf-enabled/security.conf.org
# sed -ie "s/^ServerTokens\(.*\)$/#ServerTokens \1\nServerTokens Prod/" /etc/apache2/conf-enabled/security.conf

phpのインストール

ただ、php自体は実はいらないのかもしれない。

# apt-get install postgis
# apt-get install php php-cgi libapache2-mod-php php-common php-pear php-mbstring

postgisのインストール

postgisのインストール。

以下の例では、mapserver用としてpostgisを利用するユーザを「gis」、パスワードを「password」、データベースを「mapserv」として作成しています。

# apt-get install postgis
# sudo su postgres
$ psql
postgres=# CREATE ROLE gis with SUPERUSER CREATEROLE CREATEDB LOGIN;
postgres=# ALTER ROLE gis WITH PASSWORD 'password';
postgres=# CREATE DATABASE mapserv owner gis;

mapserverに必要なパッケージのインストール ( libpng, libjpeg, proj, gdal, libcurl, zlib等)

https://mapserver.org/ja/introduction.html#software-requirements
を参考に、追加でパッケージをインストール

# apt-get install libpng-tools libjpeg-tools freetype2-demos proj-bin gdal-bin zlib1g libcurl4 geotranz cairo-5c libxml2 libfcgi-dev

mapserverのインストール

最後にmapserverのインストール

# apt-get install mapserver-bin cgi-mapserver
# a2enmod cgi

Discussion