とりあえずやってミタ

とりあえず技術的っぽいことをいろいろやってみるブログ

debianにtomcat8をセットアップ

   

debian(wheezy)tomcat8をインストールしたときのメモ

必要なアーカイブをダウンロード

JDK1.8

ORACLEのページに行ってJDKをダウンロードしてくる。
今回落としてきたのは、”jdk-8u31-linux-x64.gz“、任意のディレクトリで解凍する。
なお、拡張子は”gz”だが、gunzipで解凍してもうまく行かないのでtarを使う。

$ tar zxf jdk-8u31-linux-x64.gz

Tomcat8

tomcat公式ページからtomcat8のアーカイブをダウンロードしてくる。
落としてきたアーカイブは任意のディレクトリで解凍する

$ tar zxf apache-tomcat-8.0.18.tar.gz

環境構築

以上で必要なものは揃ったので環境を作る。
自分は以下のようにtomcatとjavaのシンボリックリンクを作成して、
リンクを変えるだけでバージョンを変更できるようにしている

/usr/local/ jdk1.8.0_31 java -> jdk1.8.0_31 apache-tomcat-8.0.18 tomcat -> apache-tomcat-8.0.18

配置が完了したらJAVAへのパスを通す。
とりあえずログインユーザーの.bashrcの最後に以下を追記すればOK

編集後には忘れずにsourceを実行して設定の反映

$ source ~/.bashrc

tomcatのデーモン化

tomcatをデーモンで動かすためにjsvcを自分でビルドする必要がある。
jsvcのソースコードは落としてきたアーカイブに含まれている。
なお、ビルドにはgccが必要なので事前にインストールしておく。

# cd /usr/local/tomcat/bin # tar zxf commons-daemon-native.tar.gz # cd commons-daemon-1.0.15-native-src/unix # ./configure 〜〜〜 # make # mv jsvc /usr/local/tomcat/bin/jsvc

bin/commons-daemon-native.tar.gzにjsvcのソースが含まれている。
アーカイブを解凍して出来たディレクトリにはいり、
configuremakeを実行すればjsvcがビルドされる。
最後にjsvcをパスの通ってるディレクトリ(/usr/local/tomcat/bin)に設置する。

次にjsvcを動かす際の設定を行なう。
設定は/usr/local/tomcat/bin/にsetenv.shを保存して、
必要な変数に値を入力するとデーモン起動時に読込まれる。
なお、setenv.shはただのシェルスクリプトなので実行権限を忘れずに付けること。

以上の設定では、tomcatデーモンをwww-dataユーザーで動かすようにしている。
この場合/usr/local/tomcat以下のオーナーを全てwww-dataに変更しておくなどして、
www-dataユーザーにアクセス権を与えておかないとtomcatは正常に稼働しない。

また最後の行のCATALINA_OPTSはtomcatで使用されるメモリの設定になる。
実行環境に合わせて適切な値に変更すること。


デーモン起動

以上の設定が完了したらbin/daemon.shをstartオプションで実行する

# cd /usr/local/tomcat/bin # ./daemon.sh start # ps axu | grep jsvc root 2726 0.0 0.0 16756 408 ? Ss 10:58 0:00 jsvc.exec (長いので省略)org.apache.catalina.startup.Bootstrap www-data 2727 49.6 16.8 2059804 173040 ? Sl 10:58 0:12 jsvc.exec (長いので省略)org.apache.catalina.startup.Bootstrap

以上でtomcatがデーモンとして稼働する。
psコマンドで実行ユーザーもwww-dataになっていることが確認できる。
デーモンの停止は”daemon.sh stop“。

なお、debianユーザーならdaemon.shを/etc/init.dの下において運用したいと思う。
その際は環境変数”CATALINA_HOME“にtomcatの場所を指定しておく必要がある。
daemon.shの最初の箇所に入力しておくのが無難だろう



まとめ

debianではaptコマンドでパッケージ管理が行なえるのだが、
それだと意図したバージョンが手に入らなかったり、
ついaptコマンドでupdateをかました結果、
意図しないバージョンアップがされてしまう可能性がある。
それらを避けるために、
java関係に関しては上記のような明示的なバージョン管理をする運用をしていたりする。

実は、恥ずかしながら業務でtomcat8をまだ使ったことがなかった。
しかしインストール&稼働は今までの知識で問題なく行なえた。
(ちなみに実運用ではtomcat6で凌いできていた)
今後はSAstrutsで作ったアプリをtomcat8でも問題なく動くことを確認していきたい。

 - メモ , , ,

  関連記事