debian に Tomcat の Geoserver をセットする
ようやく Tomcat で Geoserver を動かすことができたのでメモ。 本番環境では debian に直接設定する予定ですが、今回はテスト用にコンテナを用意しました。
インストール作業を行った debian は docker コンテナの debian 8.3 になります。 コンテナの 80 番ポートをホストの 8081 番へ、8080 番ポートを 8082 番へ接続するため次のようなコマンドでコンテナを起動します。
$ docker run -i -p 8082:8080 -p 8081:80 -t debian bash
ホストで他に動かしてるサービスがあるので 80 と 8080 が使えないとかってだけなんです。 80 もアクセスできるようにしてますが、特になくても大丈夫だと思います。
準備
コンテナに入ったら一般ユーザを用意します。
# apt-get update # apt-get install sudo vim zip -y # hash -r # visudo zoar ALL=(ALL:ALL) ALL # adduser zoar Adding user `zoar' ... Adding new group `zoar' (1000) ... Adding new user `zoar' (1000) with group `zoar' ... Creating home directory `/home/zoar' ... Copying files from `/etc/skel' ... # su zoar $ cd ~
Java のインストール
Java のインストールは基本はこちらのブログです。
Launchpad.net の “WebUpd8” team にある Ubuntu 用のリポジトリをセットしてインストールです。
Technical details about this PPA
をクリックするとリポジトリを利用するための設定例が出てくるのでその辺を利用します。
リポジトリを追加した時にリポジトリの公開鍵を信頼しておかないとファイルを取ってこれないので公開鍵をセットしておきます。Signing Key
の /
以降の文字列を apt-key の --recv-keys に渡せば OK です。
Fingerprint 全部を渡してもイケるみたいですけど。
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys XXXXXXXX
セットしたら apt のソースにリポジトリを追加して Java をインストールします。
$ sudo sh -c "echo 'deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main' > /etc/apt/sources.list.d/webupd8team-java.list" $ sudo sh -c "echo 'deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main' >> /etc/apt/sources.list.d/webupd8team-java.list" $ sudo apt-get update $ sudo apt-get install oracle-java8-installer -y
ライセンスに承諾するか聞かれるので承諾すればインストールが最後まで進みます。
Do you accept the Oracle Binary Code license terms? y
java -version
でバージョンが帰ってくれば OK 。
Tomcat のインストール
実行用のログインしないユーザ tomcat
を作成しておきます。
$ sudo adduser --system --shell /bin/bash --gecos 'Tomcat Java Servlet and JSP engine' --group --disabled-password --home /home/tomcat tomcat
Tomcat を落としてきて展開します。今回はなんとなく Tomcat 8 です。
$ mkdir ~/tmp $ cd ~/tmp/ $ wget http://www.us.apache.org/dist/tomcat/tomcat-8/v8.0.32/bin/apache-tomcat-8.0.32.tar.gz $ tar xvf apache-tomcat-8.0.32.tar.gz
適当な場所に移動して Tomcat をコントロールできるユーザを設定します。
$ sudo mv ~/tmp/apache-tomcat-8.0.32 /usr/share/tomcat8 $ sudo ln -s /usr/share/tomcat8 /usr/share/tomcat $ vi /usr/share/tomcat/conf/tomcat-users.xml
ユーザの設定がコメントアウトされているので、その後ろ部分あたりにユーザとロールをセットします。
Tomcat の管理画面でユーザ認証が必要な場合はここでセットしたユーザ名、パスワードを使います。
<role rolename="tomcat"/> <role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="tomcat" password="tomcat" roles="tomcat,manager-gui,admin-gui"/>
Tomcat 配下のファイルとディレクトリのオーナーをログインできないユーザとして追加しておいた tomcat
に変更しておきます。
$ sudo chown -R tomcat:tomcat /usr/share/tomcat8
これで Tomcat を実行することができます。
tomcat
ユーザで実行するので次のような感じのコマンドです。
$ sudo /bin/su - tomcat -c /usr/share/tomcat/bin/startup.sh
ブラウザから Docker ホストの 8082 にアクセスして Tomcat の画面が出てくれば OK です。
Geoserver を配置して利用可能にする
Geoserver のサイトにアクセスしてダウンロードのダイレクトリンクからダウンロードします。
$ wget http://downloads.sourceforge.net/project/geoserver/GeoServer/2.8.2/geoserver-2.8.2-war.zip $ unzip geoserver-2.8.2-war.zip
war ファイルのパスを表示してコピーしておきます。
$ find `pwd` -name "geoserver.war" /home/zoar/tmp/geoserver.war
ブラウザで表示してる Tomcat の画面に戻って Manager App
をクリックして Tomcat Webアプリケーションマネージャにアクセスします。
ユーザ名とパスワードは両方とも tomcat-users.xml
に記述した tomcat
を使えばログインできます。
配備
にある サーバ上のWARファイル又はディレクトリの配備
を使って Geoserver を配備します。
コンテキストパス
には /geoserver
、WARファイル又はディレクトリのURL
には先ほど表示させた war ファイルのフルパスを入力して 配備
ボタンをクリックすれば OK。
Tomcat で war を展開するので若干時間がかかるかもしれませんが、しばらくすると アプリケーション
の欄に /geoserver
が表示されると思います。
表示された /geoserver をクリックして Geoserver の管理画面が表示されれば完了です。
後は Geoserver のデータディレクトリにファイルを配置して Geoerver の管理画面から読み込めば素敵な Web マップライフを送ることができます。
データディレクトリのパスは /usr/share/tomcat/webapps/geoserver/data/data/ になるんじゃないかな。