CentOS ウェブサーバー構築 Tomcat

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

ダウンロード

Apache Tomcat (http://tomcat.apache.org/) から次のファイルをダウンロードします。
Tomcat 7.0.23 Binary Distributions - Core apache-tomcat-7.0.23.tar.gz
 (※)下線部は 2012/01/05 現在の最新バージョンです。

事前準備

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

インストール

/opt ディレクトリでアーカイブを展開し、Tomcat をインストールします。
# cd /opt
# tar zxvf ダウンロード先/apache-tomcat-7.0.23.tar.gz
# ln -s apache-tomcat-7.0.23 tomcat

Tomcat をデーモンで実行させるため、jsvc ツールをインストールします。
# cd /opt/tomcat/bin
# tar zxvf commons-daemon-native.tar.gz
# cd commons-daemon-*-native-src/unix
# autoconf
# ./configure
# make
# cp jsvc ../..
# rm -rf commons-daemon-*-native-src

tomcat 実行用ユーザー tomcat を作成し、Tomcat ディレクトリの所有者を変更します。
実行用グループは apache にしています。
# useradd tomcat -s /sbin/nologin -d /opt/tomcat -g apache
# chown -R tomcat.apache apache-tomcat-7.0.23

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

PostgreSQLMySQL の JDBC ドライバは、/opt/tomcat/lib に配置しています。
配置後、
# chown -R tomcat.apache apache-tomcat-7.0.23
で、所有者を変更しておきます。

ウェブアプリケーションの配置設定

ウェブアプリケーションは、デフォルトの /opt/tomcat/webapps ではなく、$CATALINA_BASE を設定し、/home/www/tomcat/webapps に配置するようにしています。

ウェブアプリケーションの配置用ディレクトリを作成します。
# mkdir -p /home/www/tomcat/conf
# mkdir    /home/www/tomcat/webapps
# mkdir    /home/www/tomcat/work
# mkdir    /home/www/tomcat/temp
# mkdir    /home/www/tomcat/logs
# 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管理ツールの設定

GUI で Tomcat の管理を行えるように manager-gui ロール(ウェブアプリケーション管理ツール用)と admin-gui ロール(仮想ホスト管理ツール用)のユーザーを登録します。

例では、manager-gui ロールユーザー名 : manager、パスワード : manager
admin-gui ロールユーザー名 : admin、パスワード : admin で登録しています。
# vi /home/www/tomcat/conf/tomcat-users.xml
----------(vi ここから)----------
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager-gui"/>
  <role rolename="admin-gui"/>
  <user username="manager" password="manager" roles="manager-gui"/>
  <user username="admin"   password="admin"   roles="admin-gui"/>
</tomcat-users>
----------(vi ここまで)----------

# chmod 600 /home/www/tomcat/conf/tomcat-users.xml

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

# (ウェブアプリケーション管理ツールの設定を行います)
# cp /opt/tomcat/webapps/manager/META-INF/context.xml      tomcat#manager.xml
# vi tomcat#manager.xml
----------(vi ここから)----------
     :
<Context docBase="${catalina.home}/webapps/manager/" antiResourceLocking="false" privileged="true" />
     :
----------(vi ここまで)----------

# (仮想ホスト管理ツールの設定を行います)
# cp /opt/tomcat/webapps/host-manager/META-INF/context.xml tomcat#host-manager.xml
# vi tomcat#host-manager.xml
----------(vi ここから)----------
     :
<Context docBase="${catalina.home}/webapps/host-manager/" antiResourceLocking="false" privileged="true" />
     :
----------(vi ここまで)----------

# (Tomcat ドキュメントの設定を行います)
# cp /opt/tomcat/webapps/manager/META-INF/context.xml      tomcat#docs.xml
# vi tomcat#docs.xml
----------(vi ここから)----------
     :
<Context docBase="${catalina.home}/webapps/docs/" antiResourceLocking="false" privileged="true" />
     :
----------(vi ここまで)----------

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

Apache Web Server との連携

Apache は仮想ホストで稼動させていますので、Apache で連携させるホストの設定ファイルに Tomcat との連携を設定します。

ここでは、www.system-act.com の設定ファイルである www.system-act.com.conf に設定することにします。
(※)Apache の設定ファイル構成は Apache HTTP Server を参照してください。
# vi /usr/local/apache2/conf/extra/vhosts/www.system-act.com.conf
----------(vi ここから)----------# (GUI 管理ツールの連携設定を行います。IP アドレスによるアクセス制限を行っています。)
<Location /tomcat/>
  Order Deny,Allow
  Deny  from all
  Allow from 192.168.201.0/24
  ProxyPass ajp://localhost:8009/tomcat/
  AddDefaultCharset utf-8
</Location>----------(vi ここまで)----------

8080 ポートでの Tomcat 起動を停止します。
# vi /home/www/tomcat/conf/server.xml
----------(vi ここから)----------
       :
         Define a non-SSL HTTP/1.1 Connector on port 8080
    -->
    <!--
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    -->
       :
----------(vi ここまで)----------

起動設定

Tomcat の自動起動サンプルスクリプトを元に自動起動作成し、サーバー起動時に自動的に Tomcat が起動するようにします。
# cd /etc/rc.d/init.d

# (自動起動サンプルスクリプトを取得します)
# tar zxvf /opt/tomcat/bin/commons-daemon-native.tar.gz -O commons-daemon-*-native-src/unix/samples/Tomcat7.sh > tomcat

# vi tomcat
----------(vi ここから)----------
#!/bin/sh

# chkconfig: - 80 20
# description: tomcat

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

# Licensed to the Apache Software Foundation (ASF) under one or more
       :
# limitations under the License.
# 

JAVA_HOME=/usr/java/jdk
CATALINA_HOME=/opt/tomcat
CATALINA_BASE=/home/www/tomcat
JSVC=$CATALINA_HOME/bin/jsvc
TOMCAT_USER=tomcat

# resolve links - $0 may be a softlink
       :
# ----- Execute The Requested Command -----------------------------------------
case "$1" in
       :
    ;;
    start   )
      echo -n "Starting Tomcat: "
      "$JSVC" $JSVC_OPTS \
       :
      $CATALINA_MAIN
      RETVAL=$?
      if [ $RETVAL = 0 ]; then
        echo_success
      else
        echo_failure
      fi
      echo
      exit $RETVAL
    ;;
    stop    )
      echo -n "Shutting down Tomcat: "
      "$JSVC" $JSVC_OPTS \
       :
      $CATALINA_MAIN
      RETVAL=$?
      if [ $RETVAL = 0 ]; then
        echo_success
        rm -f $CATALINA_PID
      else
        echo_failure
      fi
      echo
      exit $RETVAL
    ;;
    version  )
       :
----------(vi ここまで)----------

# chmod +x tomcat
# chkconfig tomcat on
# service tomcat start                                        # Tomcat を起動します
# service httpd  restart                                      # Apache を再起動します

GUI管理ツールの稼働確認

ウェブブラウザで http://www.system-act.com/tomcat/manager/html にアクセスします。

フィードバック

記事の内容についてのご質問、ご指摘、その他ご意見等は、Weblog/Twitter にて受け付けております。

System House ACT Weblog 内記事 : CentOS ウェブサーバー構築 Tomcat

トラックバックまたはコメントにてお寄せください。

Twitter では .@systemact 宛につぶやいてください。
また、こちら から、この記事についてつぶやくことができます。
a System House to build an Accounting system by the Computer Technology