Jakarta-Tomcatのインストール

Tomcatは、JSP環境を構築するためのサーバアプリケーションである。基本的にはApacheをインストールしなくてもTomcat自身がWebサーバの機能も持っているため、特別Apacheをインストールしておく必要はない。ただしスクリプトのコンパイルにはJDK(J2SDK)を使用するため、これは先にインストールしておく必要がある。
なおTomcatのWebサーバ部分はデフォルトでポート8080を使用するため、Webでアクセスする場合は「http://localhost:8080/」などと指定してアクセスしなくてはいけないのだが、Apacheにモジュールを組み込むことでApacheの80ポートでアクセスさせることもできる。このモジュールは「mod_jk.so」と「mod_webapp.so」の2種類があるが、どちらか1つを組み込めばよい。最近は「mod_webapp.so」がよく使われるようである。ここではその方法も紹介する。

1)J2REをインストールする。アーカイブは「j2re-1_4_0-linux-i386.bin」で、自己解凍書庫(インストーラ)なのでそのまま実行すればインストールできる。(このアプリケーションのインストールは必須ではない)

# cd /usr/local/
# chmod 755 j2re-1_4_0-linux-i386.bin
# ./j2re-1_4_0-linux-i386.bin
# mv j2re-1_4_0 j2re

2)同じくJ2SDKについてもインストールする。インストール後、環境変数JAVA_HOMEを設定しておく。

# chmod 755 j2sdk-1_4_0-linux-i386.bin
# ./j2sdk-1_4_0-linux-i386.bin
# mv j2sdk-1_4_0 j2sdk
# vi /etc/bashrc
export JAVA_HOME=/usr/local/j2sdk
# source /etc/bashrc;

3)Tomcatをインストールする。配布バイナリを解凍したあと、一時ファイル保存用のディレクトリを作成しておく(stickyビット付)。

# tar zxvf jakarta-tomcat-4.0.3.tar.gz
# mv jakarta-tomcat-4.0.3 tomcat
# cd tomcat/
# mkdir temp/
# chmod 1777 temp/
$ /mnt/cdrom/runInstaller

4)Tomcatを起動する。正常に起動後、ブラウザから「http://localhost:8080/」にアクセスし、サーブレット例のページが正常に表示されることを確認する。確認したらTomcatを停止しておく。Apacheが起動していたらそれも停止しておいたほうがよい。

# bin/startup.sh (起動確認)
# bin/shutdown.sh(停止確認)

5)「mod_jk.so」をApacheに組み込む場合は、Apacheのインストールdir下の「libexec/」ディレクトリ内にコピーし、パーミッションを設定する。mod_jk.soの起動には「workers.properties」というファイルが必要なので、これをUnix用の設定に変更後、Tomcatのインストールdir下の「conf/」ディレクトリ内にコピーする。

# cp mod_jk-eapi.so /usr/local/apache/libexec/
# chmod 755 /usr/local/apache/libexec/mod_jk.so
# vi workers.properties
# cp workers.properties /usr/local/tomcat/conf/

6)「httpd.conf」を編集後、Tomcatを起動後にApacheを起動する。「http://localhost/examples/」とアクセスし、ポートをつけた場合と同様に正しく動作することを確認する。

# cd /usr/local/apache/conf/
# vi httpd.conf
LoadModule jk_module libexec/mod_jk.so
AddModule mod_jk.c
<IfModule mod_jk.c>
JkWorkersFile "/usr/local/tomcat/conf/workers.properties"
JkLogFile logs/jk.log
JkLogLevel warn
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
JkMount /examples/* ajp13
</IfModule>

# /usr/local/tomcat/bin/startup.sh
# ../bin/apachectl start

7)「mod_webapp.so」を組み込む場合は、まずmod_webappのアーカイブを解凍してコンパイルを行う。

# cd /usr/local/src/
# tar zxvf webapp_module_1.0.1-tc401-src.tar.gz
# cd webapp_module_1.0.1-tc401/
# support/buildconf.sh
# ./configure --with-apxs=/usr/local/apache/bin/apxs --with-apr=./apr \
--enable-java=/usr/local/j2sdk --with-tomcat=/usr/local/tomcat
# make
$ ./setup_stubs.sh

8)「./apache-1.3/」ディレクトリ内にmod_webapp.soができるので、これをApacheのlibexecディレクトリ内にコピーする。また、コネクタのJava側アーカイブはSSLに対応していないため、コンパイルしてできたwarp.jarを上書き、またはリネーム後コピーする。

# cp apache-1.3/mod_webapp.so /usr/local/apache/libexec/
# mv /usr/local/tomcat/server/lib/warp.jar /usr/local/tomcat/server/lib/warp.jar.org
# cp java/warp.jar /usr/local/tomcat/server/lib/

9)「httpd.conf」を編集後、Tomcatを起動後にApacheを起動する。「http://localhost/examples/」とアクセスし、ポートをつけた場合と同様に正しく動作することを確認する。なお、httpd.conf内で「ServerName」ディレクティブを正しく設定していないとエラーが出るので、設定していない場合は設定する。

# cd /usr/local/apache/conf/
# vi httpd.conf
LoadModule webapp_module libexec/mod_webapp.so
AddModule mod_webapp.c
<IfModule mod_webapp.c>
WebAppConnection conn warp localhost:8008
WebAppDeploy examples conn /examples
</IfModule>
#LoadModule jk_module libexec/mod_jk.so
#AddModule mod_jk.c

# /usr/local/tomcat/bin/startup.sh
# ../bin/apachectl start

(mod_jk.soを(5)で有効化した場合、(6)で設定した部分のモジュール組み込み部分を上記のようにコメントする。)

10)モジュールを組み込んだ後、もし「http://localhost:8080/」へのアクセスを禁止させたい場合、Tomcatの設定ファイル「server.xml」を変更、コメントにする。その後TomcatとApacheを再起動。

1)以下は名前ベースでの設定。下の例では「192.168.0.2」というIPアドレスに「www.mydomain.ne.jp」 と「www2.mydomain.ne.jp」というドメインが割り当てられ、それぞれ「/home/httpd/html」 「/home/httpd/html2」にアクセスさせるような設定方法である。

<# vi /usr/local/tomcat/conf/server.xml
<--
<Connector className="org.apache.catalina.connector.http.HttpConnector"
port="8080" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" connectionTimeout="60000"/>
-->

11)必要に応じて、自動起動の設定を行う。ただしTomcatは起動するのにかなりのメモリが必要なため、特にJSPを使う予定がなければスタートアップ起動を行わないほうがよい。また行う場合は、起動優先度をApacheよりも優先させるようにしたほうがよい。

TOP OF PAGE