2000/2/4
バージョン Apache 1.3.11
Tomcat 3.0
JDK 1.2.2 RC4
OS RedHat 6.1J (Linux 2.2.12)
ホームページ http://jakarta.apache.org/tomcat/index.html (Tomcat)
http://www.blackdown.org/ (Linux JDK)
ダウンロード http://jakarta.apache.org/downloads/binindex.html (Tomcat)
ftp://ftp.lab.kdd.co.jp/Linux/java-linux/
(Linux JDK)
この情報は古いです。Apache 2.0とTomcat 5.0の連携についてはこちら。(2004/7/15)
この情報は古いです。Tomcat 3.2.3のインストール方法はこちら。(2001/9/21)

Java Servletは、CGIの代用になるテクノロジーで、サーバに常駐するためプロセス起動のオーバーヘッドがなく高速で、セッション管理など高度な機能が使用できる、Webアプリケーションプラットフォームです。

JSP (JavaServer Pages)は、Microsoft ASP (Active Server Pages)のJava版とも言えるものです。Javaコードが埋め込まれたHTMLファイルを、Servletプログラムに変換、コンパイルして実行するものです。Java Beansとの組み合わせで、ビジネスロジックとプレゼンテーションを切り分けた、カスタマイズ性の高いWebアプリケーションが開発できます。

Servlet APIの実装は元々JSDKと呼ばれ、その後継がJSWDKで、さらにそれがApacheプロジェクトに引き継がれ、現在はTomcatと呼ばれています。

Tomcatは簡単なWebサーバ機能を持っています。現在、最新のTomcatのAPIを直接Apacheで実行できるように実装されたエンジンはありません。そこで、通常のアクセスはApacheが担当し、JSPのファイルだけTomcatのWebサーバが処理するように、これら2つのWebサーバを平行稼動させます。

現在正式リリースされているTomcat 3.0には、いくつかのバグが確認されていますが、特に日本語が化けるというバグがあるようです。最近のsnapshotでは修正されているようです。必要に応じてそちらをダウンロードしてください。ただし、パスの構成などが変更されている模様です。

2000/2/4
・ Tomcatのコンパイル方法とバグ修正差分を追加

JDKのインストール

現在JDKはglibc2版のみが配布されています。Slackware 3.6では結局うまく動きませんでした。ここではRedHat 6.1Jを使用しています。

$ su
# bzip2 -cd jdk-1.2.2-RC4-linux-i386-glibc-2.1.2.tar.bz2 | tar xvf -
# mv jdk1.2.2 /usr/local/jdk
# exit

~/.bash_profileなどを編集します。

export PATH=$PATH:/usr/local/jdk/bin
export JAVA_HOME=/usr/local/jdk

Apacheのインストール

今回はJServをDSO(Dynamic Shared Object) でインストールします。これはApacheの再コンパイルなしでモジュールの追加を可能にするものです。

まずはApacheをDSOサポート付きでインストールします。

$ tar xvfz apache_1.3.11.tar.gz
$ cd apache_1.3.11
$ ./configure --enable-rule=SHARED_CORE --enable-module=so
$ make
$ su
# make install
# exit

JServのインストール

ApacheとTomcatを並行稼動させるには、JServというApache用のServletエンジンモジュールが必要ですので、これをインストールします。自分でコンパイルしてもいいですが、ApacheをDSOサポートでインストールしているのであれば、とりあえず以下の場所からバイナリをダウンロードしてコピーするだけでokです。

このファイルを、Apacheをインストールしたパスのlibexec/にコピーします。

$ su
# cp mod_jserv.so /usr/local/apache/libexec
# exit

Tomcatのインストール

バイナリをダウンロードした場合は、展開するだけです。

$ su
# unzip tomcat.zip
# mv tomcat /usr/local
# exit

一方、ソースをダウンロードしてコンパイルする場合は以下の通りです。

$ unzip jakarta-tomcat.src.zip
$ unzip jakarta-tools.src.zip

同じパスにbuildというディレクトリを作ります。

$ mkdir build

$ cd jakarta-tomcat

Tomcat 3.0には日本語を扱う上で問題となるバグと、ライブラリのロードに関するバグがあるようなので、修正します。この修正は、Java World 3月号を参考にしました。パッチを用意しましたので必要に応じて適用してください。

コンパイルします。

$ su
# sh build.sh

インストールします。

# mv ../build/tomcat /usr/local
# exit

Tomcatの設定

Apacheの設定ファイルhttpd.confに以下の行を追加します。

Include /usr/local/tomcat/etc/tomcat.conf

Tomcat Webサーバの設定ファイルserver.xmlを編集します。Tomcat側とApache側とで、パスを合わせます。こうしておけば、拡張子jspの時のみTomcatが使われ、htmlの時にはApacheが使われます。さらに.htaccessによるアクセス制御も有効です。(00/2/5追記:・・・と思ったけど、直接Tomcatのポート指定してアクセスされると無効ですね)

<Context path="/" docBase="/usr/local/apache/htdocs"
    defaultSessionTimeOut="30" isWARExpanded="true"
    isWARValidated="false" isInvokerEnabled="true"
    isWorkDirPersistent="false"/>

次に、etc/tomcat.confに以下の設定を加えます。JSPではWEB-INFというのは特殊なフォルダですが、Apacheによって直接アクセスできてしまうのを防ぎます.

<Location ~ WEB-INF>
    Deny from all
</Location>

自動起動の設定

/etc/rc.d/rc.localに以下を追加します。

# Start Apache
/usr/local/apache/sbin/apachectl start

# Start Tomat
export PATH=$PATH:/usr/local/jdk/bin
export JAVA_HOME=/usr/local/jdk
/usr/local/tomcat/tomcat.sh start