TOMCAT4.1のインストール

tomcatのインストールです。なかなか苦労しました。

 インストールするに当たり、BUILDING.txtを参照しながらバイナリを集め、コンパイルしたが、
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インストールに当たってダウンロードするファイルが山ほどある。
    とりあえず僕はこれだけダウンロードしました。
    ダウンロード元のURLはtomcat-4.1.18-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. ダウンロードファイルの解凍
    まずはダウンロードしたファイルを解凍します。
    ソースコードをダウンロードした場合にはビルドも済ませておきます。
    [root src]# tar -zxvf tomcat-4.1.18-src.tar.gz
    [root src]# tar zxvf jakarta-servletapi-4-20030118.tar.gz
    [root src]# tar zxvf commons-beanutils-1.4.1.tar.gz
    [root src]# tar zxvf commons-collections-2.0.tar.gz
    [root src]# tar zxvf commons-digester-1.2.tar.gz
    [root src]# tar zxvf commons-logging-1.0.2.tar.gz
    [root src]# tar zxvf jakarta-regexp-1.2.tar.gz
    [root src]# tar zxvf Xerces-J-bin.2.1.0.tar.gz
    [root src]# tar zxvf tomcat-connectors-4.1.18-src.tar.gz
    antを実行する前にservlet.jarをクラスパスに追加します。
    [root src]# export CLASSPATH=/usr/local/src/jakarta-servletapi-4/lib/servlet.jar
    [root src]# cd jakarta-tomcat-connectors-4.1.18-src
    [
    root jakarta-tomcat-connectors-4.1.18-src]# ant
    [
    root jakarta-tomcat-connectors-4.1.18-src]# cd ..

    [
    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 
    <- jndi-1_2_1.zipと同じディレクトリに解凍します。

    [root src]# tar zxvf commons-modeler-1.0.tar.gz
    [root src]# tar zxvf mx4j-1.1.1.tar.gz


  4. build.propertiesの編集
    次にTOMCATをビルドする前にファイルを編集します。
    build.propertiesファイルの内容と、ダウンロードしたアーカイブを解凍して作られたディレクトリ名が異なるので、propertiesファイルの内容を訂正します。
    [root src]# cd jakarta-tomcat-4.1.18-src/
    [
    root jakarta-tomcat-4.1.18-src]# cp build.properties.sample build.properties
    [
    root jakarta-tomcat-4.1.18-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.18-src  
    <- ディレクトリ名変更

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

    # ----- Commons Logging, version 1.0.1 or later -----
    #commons-logging.home=${base.path}/commons-logging-1.0.2
    commons-logging.home=${base.path}/commons-logging  
    <- ディレクトリ名変更

    # ----- 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_1_0
    xerces.home=${base.path}/xerces-2_2_1        
    <- ディレクトリ名変更

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

    エラーがでた!
    BUILD FAILED
    file:/usr/local/src/jakarta-tomcat-4.1.18-src/webapps/tomcat-docs/build.xml:120: Basedir /usr/local/src/jakarta-tomcat-4.1.18-src/jakarta-tomcat-connectors-4.1.18-src/jk does not exist
    確かにディレクトリが編だが、僕は悪くないはずだ...。仕方ないので、Makefileを書き換えます。
    エラーの原因/usr/local/src/jakarta-tomcat-4.1.18-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.18-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毎の設定を行います。
    [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.