TOMCAT4.1のインストール

tomcatのインストールです。なかなか苦労しました。
インストールしたバージョンは4.1.24です。

 インストールするにあたり、BUILDING.txtを参照しながらライブラリを集め、コンパイルしましたが、
tomcatは起動しなかった。
色々試したましが、tomcatで必要となるライブラリは、build.properties.sampleファイルを参照し、そこに書かれているURLからそこに書かれているバージョンのものをダウンロードした方が良さそう。
書かれていないものはBUILDING.txtの通りで良いのかな。
ちなみに、エラーの状況はこんな感じ。
java.lang.ClassNotFoundException: org.apache.catalina.mbeans.ServerLifecycleListener
    at org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClassLoader.java:992)
    at org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClassLoader.java:857)


インストールの流れは次のようになります。
作業は全てrootで行います。
  1. ソースコードのダウンロード
  2. 環境変数の確認
  3. ダウンロードファイルの解凍
  4. build.propertiesの編集
  5. ビルド
  6. 起動スクリプトの作成
Apacheのインストールと連携方法については→Apacheのインストール ApacheとTomcatとの連携
  1. ソースコードのダウンロード
    まずは、TOMCATインストールに必要となるダウンロードするファイルが山ほどあります。(REQUIRED LIBRARIES全てとOPTIONAL LIBRARIESの幾つかです。)
    とりあえず僕はこれだけダウンロードしました。
    ダウンロードURLはjakarta-tomcat-4.1.24-src.tar.gzの解凍後に得られるbuild.properties.sampleを参照して下さい。
    ファイルは全て/usr/local/srcにダウンロードしてます。
  2. 環境変数の確認
    作業を進める前に、次の環境変数が設定されている事を確認します。
    JAVA_HOME,ANT_HOMEそしてそのパス。
    設定されていないようなら、以下の通り設定します。
    export JAVA_HOME=/usr/local/j2sdk
    export ANT_HOME=/usr/local/ant
    export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin

  3. ダウンロードファイルの解凍
    まずはダウンロードしたファイルを解凍します。
    Tomcat
    [
    root src]# tar zxvf jakarta-tomcat-4.1.24-src.tar.gz
    Servlet API Binary
    [
    root src]# tar zxvf jakarta-servletapi-4-20030603.tar.gz
    Commons Beanutils
    [
    root src]# tar zxvf commons-beanutils-1.6.1.tar.gz
    Commons Collections
    [
    root src]# tar zxvf collections-2.1.tar.gz
    Commons Digester
    [
    root src]# tar zxvf commons-digester-1.4.1.tar.gz
    Commons Logging
    [
    root src]# tar zxvf commons-logging-1.0.2.tar.gz
    Jakarta Regular Expressions Library
    [
    root src]# tar zxvf jakarta-regexp-1.2.tar.gz
    Commons Pool
    [
    root src]# tar zxvf commons-pool-1.0.1.tar.gz
    Jakarta Tomcat Connectors
    [
    root src]# tar zxvf jakarta-tomcat-connectors-4.1.24-src.tar.gz
    Commons FileUpload
    [
    root src]# tar zxvf commons-fileupload-1.0-beta-1.tar.gz
    Xerces XML Parser
    [
    root src]# tar zxvf Xerces-J-bin.2.4.0.tar.gz
    Java Naming and Directory Interface (JNDI)
    [
    root src]# unzip -d jndi-1.2.1 jndi-1_2_1.zip
    [
    root src]# unzip -d jndi-1.2.1 ldap-1_2_4.zip
    Commons Modeler
    [
    root src]# tar zxvf commons-modeler-1.0.tar.gz
    Java Management Extensions (JMX)
    [
    root src]# tar zxvf mx4j-1.1.1.tar.gz


  4. build.propertiesの編集
    次にTOMCATをビルドする前にファイルを編集します。
    build.propertiesファイルの内容と、ダウンロードしたアーカイブを解凍して作られたディレクトリ名が異なるので、propertiesファイルの内容を訂正します。
    [root src]# cd jakarta-tomcat-4.1.24-src/
    [
    root jakarta-tomcat-4.1.24-src]# cp build.properties.sample build.properties
    [
    root jakarta-tomcat-4.1.24-src]# vi build.properties
    ファイルの編集内容はこんな感じです。

    # ----- Default Base Path for Dependent Packages -----
    #base.path=/usr/local
    base.path=/usr/local/src  
    <- コンパイルするディレクトリです。

    # ----- Jakarta Tomcat Connectors source path -----
    #jtc.home=../../jakarta-tomcat-connectors
    jtc.home=../../jakarta-tomcat-connectors-4.1.24-src  
    <- ディレクトリ名変更

    # ----- Jakarta Tomcat Jasper source path -----
    #jasper.home=../jakarta-tomcat-jasper/jasper2
    jasper.home=jasper  
    <- jakarta-tomcat-jasperがどこから取得するか不明。それっぽいディレクトリがあったので指定してしまいました。^^;

    # ----- Xerces XML Parser, version 2.0.0 or later -----
    # Note: Optional with JDK 1.4+, or if Xerces 1.x is present
    #xerces.home=${base.path}/xerces-2_3_0
    xerces.home=${base.path}/xerces-2_4_0        
    <- ディレクトリ名変更

  5. ビルド
    ビルドします。
    [root jakarta-tomcat-4.1.24-src]# ant

    エラーがでた!
    BUILD FAILED
    file:/usr/local/src/jakarta-tomcat-4.1.24-src/webapps/tomcat-docs/build.xml:172: Basedir /usr/local/sr
    c/jakarta-tomcat-4.1.24-src/jakarta-tomcat-connectors-4.1.24-src/jk does not exist
    確かにディレクトリが変だが...。仕方ないので、build.xmlを書き換えます。
    エラーの原因/usr/local/src/jakarta-tomcat-4.1.24-src/webapps/tomcat-docs/build.xmlファイルを次の通り書き換える。
    <property name="tomcat-jk.home" value="../${jtc.home}/jk"/>

    もう一度antを実行し、ビルドが終了したらbuild以下を/usr/localにtomcatという名でコピーして完了です。
    [root jakarta-tomcat-4.1.24-sr ]# cp -pr build ../../tomcat

  6. 起動スクリプトの作成
    最後にシステム起動時に自動的に起動するようにします。
    #!/bin/sh
    # securlevel: 40

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

    export JAVA_HOME=/usr/local/j2sdk
    INITLOG_ARGS=""
    BINDIR=/usr/local/tomcat/bin

    # See how we were called.
    case "$1" in
      start)
            echo -n "Starting tomcat: "
            ${BINDIR}/startup.sh
            echo
            touch /var/lock/subsys/tomcat
            ;;
      stop)
            echo -n "Shutting down tomcat: "
            ${BINDIR}/shutdown.sh
            echo
            rm -f /var/lock/subsys/tomcat
            rm -f /var/run/tomcat.pid
            ;;
      status)
            status tomcat
            ;;
      restart)
            $0 stop
            $0 start
            ;;
      *)
            echo "Usage: $0 {start|stop|restart|status}"
            exit 1
    esac
    exit 0

    システム起動時に自動起動するようにrunlevel毎の設定を行います。
    これは先ほど作成した/etc/rc.d/init.d/tomcatにシンボリックリンクを張るだけです。
    runlevel3,5で起動、0,6では終了するように設定します。
    起動時の順番、終了時の順番は私の環境に依存しているので各環境に合わせて下さい。networkより遅く起動すれば問題ないと思います。
    [root init.d]# cd ../rc3.d
    [
    root rc3.d]# ln -s ../init.d/tomcat S81tomcat
    [root rc3.d]# cd ../rc5.d
    [root rc5.d]# ln -s ../init.d/tomcat S81tomcat
    [root rc5.d]# cd ../rc0.d
    [
    root rc0.d]# ln -s ../init.d/tomcat K09tomcat
    [root rc0.d]# cd ../rc6.d
    [root rc6.d]# ln -s ../init.d/tomcat K09tomcat
以上で終了です。
次はApacheとTomcatを連携させます。


お問い合わせはwebmaster@ryouto.jpまで。
Copyright (C)2003 ryouto.jp. All Rights Reserved.