🗺️
Mapserver環境を構築する
オープンデータが広く公開されている中で、WMSでそれらを表示するための方法が少し少ないなと思って記事にする。
WMSサーバを提供できるOSSは以下の3つを見つけられた。
- mapserver
- geoserver
- examind
なんとなくgeoserverはGUIでの設定など情報も多そうだったけど、Mapserverでは公式サイトにWMS-T(Time dimension付きのWMS)も記載あったので勉強もかねてMapserverを選択。
をベースに今回の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等)
を参考に、追加でパッケージをインストール
# 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