タイトル大津真=XはUNIXでサーバで》Tomcat4のインストール(2)カテゴリーサーバー製品, Java, 大津真=XはUNIXでサーバで
作成日2001/12/7 14:4:39作成者新居雅行
――――Apacheと連携させる
次にTomcatをApacheと連携させてみましょう。つまりWebサーバ機能はApacheが担当しTomcatはServletコンテナとして動作します。

――――――――コネクタのインストール
この場合、ApacheとTomcatを接続するためのコネクタと呼ばれるApacheのモジュールが必要になります。コネクタはソースから作成することもできますが、前出のTomcatのダウンロードページにOS X用のコネクタのバイナリ(webapp-module-1.0-tc40-macosx.tar.gz)が用意されていたので、ここではそれをそのまま使用しました。
なお、Internet Explorerを使ってダウンロードすると、長いファイル名の最後の部分(「ar.gz」など)が切れてしまう場合があります。その場合、FinderもしくはTerminal上で補正してください。

圧縮ファイルをダウンロードしたら、次に示す手順でコネクタ(mod_webapp)をインストールします。

1. ダウンロードした圧縮ファイルを適当なディレクトリで展開します。
% tar xvzf webapp-module-1.0-tc40-macosx.tar.gz 〈return〉
webapp-module-1.0-tc40/
webapp-module-1.0-tc40/docs/
webapp-module-1.0-tc40/docs/api-c/
webapp-module-1.0-tc40/docs/api-c/allclasses-frame.html

2. mod_webapp.soをApacheのモジュールディレクトリ( /usr/libexec/httpd/)にコピーします。
% sudo cp webapp-module-1.0-tc40/mod_webapp.so /usr/libexec/httpd/ 〈return〉
Password: ←パスワードを入力

――――Apache側の設定
次に、Apacheの設定ファイル/etc/httpd/httpd.confを修正します。httpd.confの編集にはroot権限が必要ですので「sudo vi /etc/httpd/httpd.conf」のようにして、エディタをsudo経由で立ち上げてください。

――――――――mod_webappモジュールの読み込み
まずは、次のようにしてApacheがコネクタmod_webapp.soをモジュールとして読み込むように設定します。

1. httpd.confのサーバ名を指定する「ServerName」というパラメータを検索しホスト名を設定します。
初期状態では先頭に「#」が付いてコメントになっています。「#」を外して正しいホスト名を指定します。

ServerName g3mac.xxxxxxxx.com

2. モジュールを読み込むための設定を追加します。
httpd.confの途中に「LoadModule」行が並んでいますが、その最後に次の行を追加します。

LoadModule webapp_module libexec/httpd/mod_webapp.so

「AddModules」行の最後に次の行を追加します。

AddModule mod_webapp.c

3. Apacheが受け取ったWebアプリケーションに対する要求をTomcatに振り分けるようにします。
ここではTomcatに用意されているServleとJSPのサンプルにアクセスするための設定例を示します。httpd.confの最後に次のような行を加えてください。

〈リスト〉httpd.confの追加分

WebAppConnection warpConnection warp localhost:8008 ←(1)
WebAppDeploy examples warpConnection /examples ←(2)


(1)では、「warpConnection」という名前のコネクションを宣言し、サーブレットコンテナがローカルホストの8008番ポートで要求を受け付けるように設定しています。このポート番号は$CATALINA_HOME/conf/server.xmlで設定されています。
(2)では、「warpConnection」コネクションに対して、「httpd://ホスト名/examples」を、examplesディレクトリ($CATALINA_HOME/webapps/examples)にワープさせるように関連付けています。書式は次のようになるので必要に応じてURLパスやWebアプリケーション名を変更してください。

WebAppDeploy <コネクション名>

なお、Webアプリケーション名は、デフォルトのserver.xmlの設定では$CATALINA_HOME/webappsの下のディレクトリ名になります。

――――――――ApacheとTomcatの連携を確認する
httpd.confを修正したらApacheの制御コマンドapachectlをconfigtestを引数に実行し、設定ファイルにミスがないかを調べます。

% apachectl configtest〈return〉
Processing config directory: /private/etc/httpd/users
Processing config file: /private/etc/httpd/users/hind.conf
Processing config file: /private/etc/httpd/users/naoko.conf
Processing config file: /private/etc/httpd/users/o2.conf
Processing config file: /private/etc/httpd/users/pub.conf
Syntax OK

このように「Syntax OK」と表示されれば設定ファイルにミスはありません。

Apacheを再起動して設定を反映させる前に、あらかじめTomcatを起動する必要があります。このときすでにTomcatを立ち上げていた場合には、念のためいったん停止してから再起動します。

% sudo $CATALINA_HOME/bin/shutdown.sh 〈return〉 ←Tomcatの停止
Password:
Using CLASSPATH: /Users/o2/java/jakarta-tomcat-4.0.1/bin/bootstrap.jar
Using CATALINA_BASE: /Users/o2/java/jakarta-tomcat-4.0.1
Using CATALINA_HOME: /Users/o2/java/jakarta-tomcat-4.0.1
Using JAVA_HOME: /System/Library/Frameworks/JavaVM.framework
% sudo $CATALINA_HOME/bin/startup.sh ←Tomcatの開始
Using CLASSPATH: /Users/o2/java/jakarta-tomcat-4.0.1/bin/bootstrap.jar
Using CATALINA_BASE: /Users/o2/java/jakarta-tomcat-4.0.1
Using CATALINA_HOME: /Users/o2/java/jakarta-tomcat-4.0.1
Using JAVA_HOME: /System/Library/Frameworks/JavaVM.framework

次にacpahectlコマンドにrestartを引数に渡してApacheを再起動します。

% sudo apachectl restart 〈return〉
/usr/sbin/apachectl restart: httpd restarted

以上で準備は完了です。Webブラウザで「http://localhost/examples/」にアクセスしてみましょう(スタンドアローンモードと異なりポート番号は指定する必要はありません)。次のように表示されればApacheとTomcatの連携はうまくいっています。

 

スタンドアローンモードと同じようにServletとJSPのサンプルが実行できるかどうかを確かめましょう。うまく動かない場合には、$CATALINA_HOME/logsディレクトリに作成されるログファイルを確認してください。
(続く)
[大津真]
関連リンク大津真Web Site