Tomcat 5.5.16

(最終更新日時:2011-01-17 05:51:40)
JavaベースのサーブレットやJSPを実行するためのサーブレットコンテナ Apache Tomcat をインストールします。
また、Webサーバー Apache と連携して運用するように設定します。

ダウンロード

Tomcat 5.5.26 Binary Distributions - Coreapache-tomcat-5.5.26.tar.gz
Tomcat 5.5.26 Binary Distributions - Administration Web Applicationapache-tomcat-5.5.26-admin.tar.gz

事前準備

関連パッケージとして、下記を事前にインストールしておきます。
Java SE JDK 6 Java SE 5.0以降が必要です
Apache HTTP Server Apacheと連携させます

インストール

tomcat実行用の user を作成します。
group は apache にしています。
# useradd -g apache -s /sbin/nologin -d /opt/tomcat -M tomcat
/optディレクトリでアーカイブを展開し、Tomcatをインストールします。
# cd /opt
# tar xzvf ダウンロード先/apache-tomcat-5.5.26.tar.gz
# tar xzvf ダウンロード先/apache-tomcat-5.5.26-admin.tar.gz
# ln -s apache-tomcat-5.5.26 tomcat
Tomcatをデーモンで実行させるため、jsvcツールをインストールします。
# cd /opt/tomcat/bin
# tar xzvf jsvc.tar.gz
# cd jsvc-src
# autoconf
# sh configure
# make
# cp jsvc ..
# cd ..
# rm -rf jsvc-src
# chown -R -H --dereference tomcat.apache /opt/tomcat

データベースドライバ等の配置

PostgreSQLMySQL のJDBCドライバは、/opt/tomcat/lib に配置しています。
配置後、

# chown -R -H --dereference tomcat.apache /opt/tomcat
で、所有者を変更しておきます。

Webアプリケーションの配置設定

Webアプリケーションは、デフォルトの /opt/tomcat/webapps ではなく、$CATALINA_BASE を設定し、/home/www/tomcat/webapps に配置するようにしています。
# mkdir -p /home/www/tomcat/conf
# mkdir -p /home/www/tomcat/webapps
# mkdir -p /home/www/tomcat/work
# cp /opt/tomcat/conf/server.xml /home/www/tomcat/conf/
# cp /opt/tomcat/conf/web.xml    /home/www/tomcat/conf/
# chown -R tomcat.apache /home/www/tomcat

GUI管理ツールの設定

managerロール(Webアプリケーション管理ツール用)とadminロール(仮想ホスト管理ツール用)のユーザの登録を行います。
例では、managerロールユーザ名 : manager、パスワード : manager
adminロールユーザ名 : admin、パスワード : admin で登録しています。
# vi /home/www/tomcat/conf/tomcat-users.xml

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user username="manager" password="manager" roles="manager"/>
  <user username="admin"   password="admin"   roles="admin"/>
</tomcat-users>

# chmod 600 /home/www/tomcat/conf/tomcat-users.xml
# chown -R tomcat.apache /home/www/tomcat
コンテキストの設定を行います。
GUI管理ツールは /tomcat/ 配下の階層ディレクトリでアクセスします。
# mkdir -p /home/www/tomcat/conf/Catalina/localhost 
# cd       /home/www/tomcat/conf/Catalina/localhost 

# (各管理ツールの設定を行います)
# cp /opt/tomcat/conf/Catalina/localhost/admin.xml        tomcat#admin.xml
# cp /opt/tomcat/conf/Catalina/localhost/manager.xml      tomcat#manager.xml
# cp /opt/tomcat/conf/Catalina/localhost/host-manager.xml tomcat#host-manager.xml

# chown -R tomcat.apache /home/www/tomcat

Apacheとの連携

Apacheは仮想ホストで稼動させていますので、Apacheの設定ファイル httpd-vhosts.conf に Tomcat との連携を設定します。
# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
# (連携させるホストの VirtualHost に設定します)
<VirtualHost 192.168.11.11:80>
     :
    ServerName www.system-act.com
     :
# (GUI管理ツールの連携設定を行います。IPアドレスによるアクセス制限を行っています。)
<Location /tomcat/>
  Order Deny,Allow
  Deny  from all
  Allow from 192.168.12.0/24
  ProxyPass ajp://localhost:8009/tomcat/
</Location>
     :
<VirtualHost>
8080ポートでのTomcat起動を停止します。
# vi /home/www/tomcat/conf/server.xml

       :
         Define a non-SSL HTTP/1.1 Connector on port 8080
    -->
    <!--
    <Connector port="8080" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />
    -->
       :

起動設定

自動起動スクリプトを作成します。
# vi /etc/rc.d/init.d/tomcat

#!/bin/sh
#
# chkconfig: - 80 20
# description: tomcat

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

JAVA_HOME=/opt/jdk
CATALINA_HOME=/opt/tomcat
CATALINA_BASE=/home/www/tomcat
TOMCAT_USER=tomcat
TMP_DIR=/tmp
CATALINA_OPTS=
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar
PIDFILE=/var/run/tomcat.pid
LOCKFILE=/var/lock/subsys/tomcat
DAEMON=$CATALINA_HOME/bin/jsvc

start(){
  #
  # Start Tomcat
  #

  echo -n "Starting Tomcat: "
  $DAEMON \
    -pidfile $PIDFILE \
    -user $TOMCAT_USER \
    -home $JAVA_HOME \
    -Dcatalina.home=$CATALINA_HOME \
    -Dcatalina.base=$CATALINA_BASE \
    -Djava.io.tmpdir=$TMP_DIR \
    -outfile $CATALINA_HOME/logs/catalina.out \
    -errfile '&1' \
    $CATALINA_OPTS \
    -cp $CLASSPATH \
    org.apache.catalina.startup.Bootstrap

  #
  # To get a verbose JVM
  #-verbose \
  # To get a debug of jsvc.
  #-debug \
  RETVAL=$?
  if [ $RETVAL = 0 ]; then
    echo_success
    touch $LOCKFILE
  else
    echo_failure
  fi
  echo
}

stop(){
  #
  # Stop Tomcat
  #
  echo -n "Shutting down Tomcat: "
  $DAEMON \
    -stop \
    -pidfile $PIDFILE \
    org.apache.catalina.startup.Bootstrap
  RETVAL=$?
  if [ $RETVAL = 0 ]; then
    echo_success
    rm -f $PIDFILE $LOCKFILE
  else
    echo_failure
  fi
  echo
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  status)
    status $DAEMON
    RETVAL=$?
    ;;
  *)
    echo $"Usage: tomcat {start|stop|restart|status}"
    exit 1
    ;;
esac

# chmod 755 /etc/rc.d/init.d/tomcat
# chkconfig tomcat on
# service tomcat start                                   サービスを起動します
# service httpd  restart                                 Apacheを再起動します

GUI管理ツールの稼働確認

Webブラウザで http://www.system-act.com/tomcat/manager/html にアクセスします。
a System House to build an Accounting system by the Computer Technology