2015年3月19日木曜日

CentOS 6.6 に Tomcat を yum を使ってインストールしてみた

概要

Tomcatのインストールはアーカイブをダウンロードして解凍して配置して終了という感じで実施していたのですが、yumでもインストールできるのでやってみました
設定ファイルやデプロイ先も自動で設定されるのでその辺も確認しました

環境

  • CentOS 6.6 Final
  • Tomcat 7.0.33
  • Java 1.8.0_31

インストール作業

yumを使って各種インストールしてみます

Tomcatのインストール

yum -y install tomcat

でTomcatの 7.0.33というバージョンがインストールされました

これは、バージョン7系のバージョンとしてはだいぶ古いです
バージョンで7系の最新版は 2015/03/18 時点では v7.0.59 でした
v7.0.33は 2012-11-21 12:07 頃にリリースされたバージョンです

tomcat version

Server version: Apache Tomcat/7.0.33
Server built:   Apr 30 2014 09:16:58
Server number:  7.0.33.0
OS Name:        Linux
OS Version:     2.6.32-358.el6.x86_64
Architecture:   amd64
JVM Version:    1.8.0_31-b13
JVM Vendor:     Oracle Corporation

Server builtを見ると割りと最近(それでも1年以上前)ですがおそらくこれはrpmパッケージとしてビルドされた時期なのでTomcatのリリースとは別になると思います

P.S 2015/03/24

すいません、tomcatの7系はCentOS6.6のbaseリポジトリでは公開されていませんでした
知らぬ間にepelのリポジトリを追加していたみたいです
上記を実施するにはまず以下を実施してください

rpm -Uvh http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm

JVMについて

もし自分の環境にTomcatがまだインストールされていない状態だと一緒にJavaもインストールされます
インストールされるJavaはOpenJDKになります(Oracle版ではないです)
最終的に自分の環境で動作させたJavaは1.8になります

実はTomcatをyumインストールするとそのバージョンに依存したJavaのRPMパッケージも自動でインストールされます
Tomcat7.0.33の場合、一緒にインストールされたJavaのバージョンは1.7.0.75でした

これは既にJavaの1.8がyumがインストールされていても強制的にインストールされるようです
同時にインストールされたRPMパッケージ名はjava-1.7.0-openjdk-1.7.0.75-2.5.4.0.el6_6.x86_64で詳細を確認したい場合は

rpm -qli java-1.7.0-openjdk-1.7.0.75-2.5.4.0.el6_6.x86_64

でOKです

JVMを切り替える

既に1.8がインストールされている状態だと使用するJavaのバージョンが1.7で上書きされてしまいます
実際にjava -version辺りを実行すると1.7 になっていることがわかると思います
1.8を使いたい場合はalternativesコマンドを使うと簡単に切り替えることができます

コマンドの流れとしては以下の通りです

java -version

java version "1.7.0_75"
OpenJDK Runtime Environment (rhel-2.5.4.0.el6_6-x86_64 u75-b13)
OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)

まだ1.7の状態でalternativesコマンドを利用してバージョンを切り替えます

alternatives --config java

3 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
   1           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.31-1.b13.el6_6.x86_64/jre/bin/java
   2           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
*+ 3           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:1

使用したいバージョンの番号を入力すればOKです
切り替えたあとに再度バージョンを確認しましょう

java -version

openjdk version "1.8.0_31"
OpenJDK Runtime Environment (build 1.8.0_31-b13)
OpenJDK 64-Bit Server VM (build 25.31-b07, mixed mode)

これでTomcatが利用するJVMを切り替えることができます
もしyumでJavaをインストールしている場合はお好きなバージョンに切り替えてください

起動方法

yumでインストールした場合はinit.d配下に起動スクリプトが作られるので service コマンド経由で起動することができます

service tomcat start

init.d経由なので chkconfig で自動起動をONにすることもできます
Tomcat起動中にJavaのバージョンを切り替えて停止しようとするとうまく停止することができないので、Javaのバージョンを変更したい場合は起動 -> 停止をしてから変更してください

管理画面をインストール

Tomcatの管理画面は別途yumインストール必要がありました

yum -y install tomcat-admin-webapps

でインストールできます
これでTomcatを再起動するとhttp://localhost:8080/manager/htmlにアクセスできるようになります

アクセスするとユーザ名とパスワードが聞かれます
デフォルトだと管理UIにアクセスできるユーザは存在しないのでアクセスしたい場合は設定ファイルにユーザを追加しましょう

  • vim /etc/tomcat/tomcat-users.xml
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
  <user username="tomcat" password="tomcat" roles="admin-gui,manager-gui"/>

上記をtomcat-usersタグ内に記載しましょう
これで管理画面にアクセスすることができます

設定の確認

設定ファイルのパスやデプロイパスを確認します

設定ファイルのパス

まず、インストールしたTomcatの詳細情報を確認してみましょう

rpm -qli tomcat-7.0.33-4.el6.noarch

上記のコマンドでインストールされたファイルやパスがすべて表示されます

その中で設定ファイルは以下のパスで管理されるようです

/etc/tomcat/

このパスの実態は/usr/share/tomcat/confになっており、ここからシンボリックリンクがはられている感じになります
設定変更したい場合は/etc/tomcat配下にある設定ファイルを変更すればOKです

デプロイ先のパス

デプロイ先は以下でした

/var/lib/tomcat/webapps

これは/usr/share/tomcat/webappsからシンボリックされています

ログ

ログは以下に出力されます

/var/log/tomcat

これは/usr/share/tomcat/logsからシンボリックされています
なので、log4jなので FileAppenderを使う場合は./logs/hoge.logと書いておけば上記にログが吐かれるようになります

最後に

yumだと簡単にインストールできます
ただ設定ファイルのディレクトリやログのディレクトリも勝手に決まるのでその辺をインストール後に自分で確認する必要があります
起動スクリプトが自動で生成されるのも嬉しいポイントかなと思います

ただ、デメリットもやはりあり最新版がインストールされないことや管理UI用のRPMを別途インストールしなければいけないなど若干手間になる作業もあります

アーカイブ版とyum版を比較すると個人的にはyumインストールでいいかなと思っています
もしアップデートやセキュリティパッチが出たらyumコマンドで簡単に適用できます
最新版を絶対使う必要がなければyumをおすすめします

それでも最新版を使いたいのであればアーカイブ版方式でインストールするしかないかなと
もしくは自分でrpmbuild等を使ってrpmファイルを作成すればrpmコマンドでインストールでされるのでパッケージ管理システム配下で管理することはできるようになります

0 件のコメント:

コメントを投稿