すぐできるTomcat5.5(6.0)インストール on RedHat系Linux

CentOS5.3 x86_64版にJDK6とTomcat5.5をインストールした時のメモ。
因みに、RedHat Enterprise Linux 4(32bit版)で、Tomcat6.0.18をインストールしたときにもこのメモの通りインストール出来た。読み替えてもらえばインストールできるはず。

Javaのインストール

1. SUN JDK6をダウンロード

http://java.sun.com/javase/ja/6/download.html
Linux x64を選択してダウンロード
選択していって最終的に表示されたリンクのURLをコピーしてwgetすればOK。でも出来上がるファイル名がすごい長くなるので、変更しとくといいかも。

2. ダウンロードしたファイルをインストール
# chmod +x jdk-6u13-linux-x64-rpm.bin
# ./jdk-6u13-linux-x64-rpm.bin

※もしかして、GCJとか入っているかも知れないので、上記コマンド実行前に確認しておく。GCJが入っていればアンインストール。

# rpm -qa|grep java
gcc-java-3.4.6-3
java-1.4.2-gcj-compat-1.4.2.0-27jpp

と、この2つはいらないので削除(ちなみにRHEL4.4での結果)

# rpm -e java-1.4.2-gcj-compat-1.4.2.0-27jpp gcc-java-3.4.6-3
3. 確認

Javaがインストールされていることを確認
以下のように表示されることを確認

# java -version																				
java version "1.6.0_13"																				
Java(TM) SE Runtime Environment (build 1.6.0_13-b03)																				
Java HotSpot(TM) 64-Bit Server VM (build 11.3-b02, mixed mode)																				

※インストールディレクトリ: /usr/java

Tomcatのインストール

1. Tomcat 5.5系の最新版をダウンロード

http://tomcat.apache.org/download-55.cgi

# cd /usr/src
# wget http://ftp.riken.jp/net/apache/tomcat/tomcat-5/v5.5.27/bin/apache-tomcat-5.5.27.tar.gz
2. インストール
# tar xvzf apache-tomcat-5.5.27.tar.gz
# mv apache-tomcat-5.5.27 /usr/local
# cd /usr/local
# ln -s apache-tomcat-5.5.27 tomcat
# ls -la tomcat
lrwxrwxrwx 1 root root 21  4月 22 23:48 tomcat -> apache-tomcat-5.5.27/

ユーザ・グループの追加

# groupadd -g 1000 tomcat
# useradd -M -s /sbin/nologin -g 1000 -u 1000 tomcat

ここでは分かりやすいようにグループIDとユーザIDを1000としています。すでにこのIDが無いことを/etc/passwd, /etc/groupファイルを見て確認してください。
ホームディレクトリを変更する

# vi /etc/passwd
  tomcat:x:1000:1000::/home/tomcat:/sbin/nologin
  ↓(変更後)
  tomcat:x:1000:1000::/usr/local/tomcat:/sbin/nologin

ディレクトリのオーナー変更

# chown -R tomcat.tomcat /usr/local/tomcat/
3. 設定

/usr/local/tomcat(以後CATALINA_HOME)以下のbin/catalina.shの先頭(56行目、まぁ、先頭の方ならどこでもOK)に以下の行を追加

JAVA_HOME=/usr/java/latest

自動起動スクリプト作成(内容は後述)

# vi /etc/init.d/tomcat

実行権限付加

# chmod +x /etc/init.d/tomcat
4. 起動確認
# /etc/init.d/tomcat start
Starting Tomcat: Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:       /usr/java/latest

停止

# /etc/init.d/tomcat stop

自動起動設定と確認

# chkconfig tomcat on
# chkconfig --list tomcat
tomcat          0:off   1:off   2:on    3:on    4:on    5:on    6:off
自動起動スクリプト
#!/bin/sh
#
# Startup script for Apache Tomcat 5.5
#
# chkconfig: 2345 85 15
# description: Apache Tomcat Java Servlets and JSP server
# processname: tomcat
# pidfile: /var/run/tomcat.pid
# config: /usr/local/tomcat/conf/server.xml

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

CATALINA_HOME=/usr/local/tomcat
TOMCAT_SCRIPT=$CATALINA_HOME/bin/catalina.sh
TOMCAT_USER=tomcat

[ -f $TOMCAT_SCRIPT ] || exit 0

# See how we were called.
case "$1" in
    start)
        # Start daemons.
        if [ -f /var/lock/subsys/tomcat ] ; then
            echo "Tomcat already started!"
            exit 1
        fi
        echo -n "Starting Tomcat: "
        su -s /bin/bash - $TOMCAT_USER -c "$TOMCAT_SCRIPT start"
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch /var/lock/subsys/tomcat
        ;;
    stop)
        # Stop daemons.
        if [ ! -f /var/lock/subsys/tomcat ] ; then
            echo "Tomcat already stopped!"
            exit 1
        fi
        echo -n "Shutting down Tomcat: "
        $TOMCAT_SCRIPT stop
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/tomcat
        ;;
    status)
        status tomcat
        exit $?
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Usage: $TOMCAT_PROG {start|stop|status|restart}"
        exit 1
esac

exit 0

どっかのサイトを参考にさせてもらったんだけど、忘れちゃった。ごめんなさい・・。