CentOSにTomcatをインストールする

  1. Tomcatユーザーを作成しておく

groupadd tomcat
useradd -g tomcat tomcat

  1. バイナリをダウンロードして解凍し、適当なディレクトリに配置する。

wget http://ftp.tsukuba.wide.ad.jp/software/apache/tomcat/tomcat-7/v7.0.37/bin/apache-tomcat-7.0.37.tar.gz
tar zxvf apache-tomcat-7.0.37.tar.gz
mv apache-tomcat-7.0.37 /usr/local/

  1. 念のため、環境変数の向き先をシンボリックリンクにしておく

cd /usr/local/
ln -s jdk1.6.0_41 java
ln -s apache-tomcat-7.0.37 tomcat

/etc/profileの内容は、以下のようにしておく。

JAVA_HOME=/usr/local/java
CATALINA_HOME=/usr/local/tomcat

  1. 起動・停止スクリプトの先頭に、以下の環境変数を定義する。

startup.sh/shutdown.sh

JAVA_HOME=/usr/local/java
CATALINA_HOME=/usr/local/tomcat
export JAVA_HOME CATALINA_HOME

参考サイトには
「/etc/profileに書く人も多いが、」
とあったが、なぜか、ここに書いてあるだけではうまく動かなかった。

  1. 起動スクリプトを配置する。

/etc/init.d/tomcat

#!/bin/bash
#
# Startup script for the Tomcat Servlet Container
#
# chkconfig: 2345 35 65
# description: Tomcat is the servlet container that is used in the official \
# Reference Implementation for the Java Servlet and JavaServer \
# Pages technologies

TOMCAT_USER=tomcat
CATALINA_HOME=/usr/local/tomcat

. /etc/rc.d/init.d/functions
prog=tomcat

start() {
echo -n $"Starting $prog: "
daemon --user $TOMCAT_USER $CATALINA_HOME/bin/startup.sh > /dev/null
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo_success
else
echo_failure
fi
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/$prog
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
daemon --user $TOMCAT_USER $CATALINA_HOME/bin/shutdown.sh > /dev/null
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo_success
else
echo_failure
fi
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/$prog
return $RETVAL
}

# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
INSTANCES=`ps --columns 512 -aef|grep java|grep tomcat|grep org.apache.catalina.startup.Bootstrap|wc -l`
if [ $INSTANCES -eq 0 ]; then
echo $prog is stopped
RETVAL=3
else
if [ $INSTANCES -eq 1 ]; then
echo $prog is running 1 instance...
else
echo $prog is running $INSTANCES instances...
fi
RETVAL=0
fi
;;
*)
echo $"Usage: $prog {start|stop|restart|status|help}"
exit 1
esac

exit $RETVAL

chmod +x /etc/init.d/tomcat

自動起動はさせたくないので、chkconfigには追加しない。

  1. 動作確認

うまく起動・停止してくれれば成功

/etc/init.d/tomcat start
/etc/init.d/tomcat stop