eコミマップ環境構築(Azure編)

この記事は1年以上前に書かれました。
内容が古くなっている可能性がありますのでご注意下さい。


マイクロソフトのクラウドプラットフォームAzureに、防災科学技術研究所が開発したオープンソース(GPLライセンス)のWebマッピングシステムeコミマップをインストールしてみました。

CentOSのインストールと設定
Azureでは、Windows Serverをはじめとして様々なOSを利用できますが、今回はeコミマップの推奨環境でもあるCentOSを使用します。

エンドポイントは、

  • リモートで作業するためのSSH(ポート22)
  • eコミマップを公開するためのHTTP(ポート80)
  • eコミマップのモジュールをアップロードするためのFTP(ポート21)
  • FTPのパッシブモードで使用するためのポート(任意。ここでは12000と12001)

を設定します。

ここからはSSHで作業します。
root権限の必要な作業をする際に毎回sudoするのは面倒ですので、はじめにrootのパスワードを設定してsuできるようにします。

$ sudo passwd root

このままでは、SSHでrootにログインできますので、/etc/ssh/sshd_configファイルの

#PermitRootLogin yes

となっている箇所を

PermitRootLogin no

に変更し、rootのログインを不許可にして

# service sshd restart

sshdを再起動します。

HTTP/FTPサーバのインストール
AzureのCentOS環境には、初期状態ではHTTPサーバもFTPサーバもインストールされていません。HTTPサーバはeコミマップで、FTPサーバはeコミマップのモジュールのアップロードに使用しますので、yumでインストールします。

# yum install httpd
# yum install vsftpd

FTPサーバはパッシブモードで動作するよう設定します。/etc/vsftpd/vsftpd.confファイルに以下の記述を追加します。

pasv_enable=YES
pasv_min_port=12000
pasv_max_port=12001
pasv_address=■■■■■.cloudapp.net
pasv_addr_resolve=YES

ポート番号(ここでは12000と12001)は任意ですが、エンドポイントの設定と合わせる必要があります。pasv_addressにはサーバのFQDNを設定します。また、

anonymous_enable=YES

となっている箇所は

anonymous_enable=NO

に修正し、匿名ログインは無効にしておきます。

HTTPサーバとFTPサーバは自動起動するよう設定しておきます。

# chkconfig httpd on
# chkconfig vsftpd on

後は、ほぼインストール手順書通りの作業になります。

ネットワークの設定
まずはネットワーク関係の設定をします。
/etc/hostsファイルにサーバのFQDNを追加します。

127.0.0.1 ■■■■■.cloudapp.net

HOSTNAME環境変数にサーバのFQDNを設定します。

# export HOSTNAME=■■■■■.cloudapp.net

再起動後もFQDNが設定されるよう、/etc/sysconfig/networkファイルに追加します。

HOSTNAME=■■■■■.cloudapp.net

次に、SELinuxを無効化します。

# setenforce 0

さらに/etc/selinux/configファイルの

SELINUX=enforcing

となっている箇所を

SELINUX=disabled

と変更し、再起動後もSELinuxが無効になるようにしておきます。

モジュールのアップロード
ここで

# service vsftpd start

FTPサーバを起動し、eコミマップのサイトからダウンロードしたインストールパッケージ(ecommap-package-2.3.0_20140205.zip)とミドルウェア(ecommap-files-2.3.0.zip)をサーバにアップロードしておきます。

PostgreSQLのインストール
はじめに、PostgreSQLのインストールに使用するyumリポジトリを登録します。

# wget http://yum.postgresql.org/9.1/redhat/rhel-6-x86_64/pgdg-centos91-9.1-4.noarch.rpm
# rpm -ivh pgdg-centos91-9.1-4.noarch.rpm

つぎに、アップロードしておいたeコミマップのインストールパッケージを使用してPostgreSQLをインストールします。

# unzip ecommap-package-2.3.0_20140205.zip
# cd ecommap-package-2.3.0/server
# tar xvfz redhat-el6.tar.gz
# cd redhat-el6
# sh install_yum_postgresql.sh

インストール後、/var/lib/pgsql/9.1/data/postgresql.confファイルで

#listen_addresses = 'localhost'
#port = 5432
max_connections = 100

となっている箇所を

listen_addresses = 'localhost'
port = 5432
max_connections = 256

に修正します。

Javaのインストール
アップロードしておいたeコミマップ用ミドルウェアのファイルを解凍します。

# unzip ecommap-files-2.3.0.zip

解凍してできたrpmパッケージでJava実行環境をインストールします。

# rpm -ivh java/jre-7u51-linux-x64.rpm

さらに、Javaコマンドのシンボリックリンクを書き換えます。

mv /usr/bin/java /usr/bin/java.bak
ln –s /usr/java/default/bin/java /usr/bin/java

こうしないと、CentOSに元々入っていたOpenJDKが動作してしまいます。

ミドルウェアのインストール
eコミマップ本体の前に、残りのミドルウェアをインストールします。まずはインストール先のディレクトリを作成します。

# mkdir /home/map
# mkdir /home/map/webapps
# mkdir /home/map/webapps/map

ecommap-files-2.3.0.zipを解凍してできたecommapディレクトリの中にあるの4つのファイル

  • geoserver-2.3.5-bin.zip
  • OpenLayers-2.13.1.tar.gz
  • dojo-release-1.9.2.tar.gz
  • IPAfont00303.zip

を/home/mapにコピーし、/home/mapで以下のコマンドを実行します。

# unzip geoserver-2.3.5-bin.zip
# mv geoserver-2.3.5 geoserver
# tar xvfz OpenLayers-2.13.1.tar.gz
# mv OpenLayers-2.13.1 webapps/map/OpenLayers
# tar xvfz dojo-release-1.9.2.tar.gz
# mkdir webapps/map/js
# mv dojo-release-1.9.2 webapps/map/js/dojo-1.9
# unzip IPAfont00303.zip
# mkdir webapps/map/WEB-INF
# mv IPAfont00303 webapps/map/WEB-INF/fonts


eコミマップ本体のインストール

さて、いよいよeコミマップ本体のインストールです。eコミマップのインストールパッケージを解凍してできたecommap-package-2.3.0ディレクトリにインストーラのファイルecommap-installer-2.3.0.tar.gzがあります。これを/home/mapにコピーし、解凍します。

# cp ecommap-installer-2.3.0.tar.gz /home/map
# cd /home/map
# tar xvfz ecommap-installer-2.3.0.tar.gz

最後にcommons-loggingを置き換えます。

# rm geoserver/lib/commons-logging-1.0.jar
# cp geoserver/webapps/geoserver/WEB-INF/lib/commons-logging-1.1.1.jar geoserver/lib/

Webサーバの設定
/home/mapで以下のコマンド

# sh proxypass.sh ■■■■■.cloudapp.net >> /etc/httpd/conf.d/mod_proxy.conf

を実行し、

# service httpd start

Webサーバを起動します。

eコミマップ用データベースの作成
以下のコマンドを実行してeコミマップ用データベースを作成します。

# createdb -U postgres -E UTF-8 ecommap


インストール作業用eコミマップの起動

eコミマップのインストール作業の最終ステップは、ブラウザで行います。そのためのサーバを起動します。環境変数JAVA_HOMEを設定する必要があります。

# export JAVA_HOME=/usr/java/default
# cd /home/map/geoserver/bin
# sh startup.sh

サイトの設定
ブラウザで以下のURLに接続します。

■■■■■.cloudapp.net/map/install

以下のような画面が表示されれば成功です。

あとは、インストール手順書に従ってサイトの初期設定を行います。

初期設定が完了したら、eコミマップの自動起動を設定して完了です。

# cp /home/map/ecommap /etc/init.d
# chkconfig ecommap on