しいしせねっと
[Javaのお部屋] [Tomcat] [java.dev.jp] [developer.jp]
[mod_jk2]

Tomcat 4でmod_webappメモ

Last update 2004.5.6

Tomcat 4とApache の連携は、あちこち探しても日本語資料が微量というか・・・まとまってないですねぃ・・・。
というわけで、解読というか、いろいろ試してApache との連携の解読に成功しました。

最近のバージョンにあわせてなおしてみました。mod_webappは古いものという位置づけなので、mod_jkやmod_jk2を使うとよいそうです。でも、mod_webappの方がはるかに簡単です。

このページのもくじ

mod_webappの設定

ん〜、mod_jk2の資料が不足気味なので、mod_webappにも挑戦してみることにしましょうか。
VirtualHost へも対応できます。

ソースからつくる場合に必要なもの

tomcat-connectors-4.1.x-src.tar.gz
autoconf 2.52以降
jakarta-ant 設定メモ
Apache httpd server 1.3.x
APR (Apache Portable Runtime)

インストール方法

最近は、バイナリで、なんか適当なものが見つからないので作らないといけません。

VineLinux 2.1.5 では autoconf が古かったようなので新しくしました。Vine Linux 2.6では不要? でもないのかな。
http://www.t.ring.gr.jp/pub/GNU/autoconf/
http://www.dnsbalance.ring.gr.jp/pub/GNU/autoconf/
などから拾ってきます。

# tar zxvf autoconf-2.57.tar.gz
# cd autoconf-2.57
# ./configure
# make
# make check 時間がかかる
# make install

だそうです。
/usr/local/bin にインストールされてしまうので、必要なら PATH を再設定します。

# export PATH=/usr/local/bin:$PATH

次は APR をインストールか?
http://apr.apache.org/
http://www.apache.org/dist/apr/ (リリース版?)
謎です
0.9.3など拾ってきたら

# tar zxvf apr-0.9.3.tar.gz
# cd apr-0.9.3
# ./buildconf
# ./configure --disable-threads

スレッドは必ず外そう? (0.9.1ではなかったような・・・オプション付けないと動きませんでした)

# make
# make install

解凍して buildconf すればいいのか? とりあえずそのあとが進まないので一度installまでしてしまう。

jakarta-tomcat-connectors/webapp の中へ aprというディレクトリ作って置けばいいのかな・・・?

準備が出来たら jakarta-tomcat-connectors-4.1.27-src.tar.gz からつくります

# tar zxvf jakarta-tomcat-connector-4.1.27-src.tar.gz
# cd jakarta-tomcat-connectors-4.1.27-src/webapp/
# support/buildconf.sh

autoconf が古いといわれてしまったら、autoconf のインストールへ戻りましょう

# ./configure --with-apxs=/usr/sbin/apxs --with-apr=../../apr-0.9.3 --with-ant=/usr/java/ant/bin/ant --with-java=/usr/java/jakarta-tomcat

aprはソースを解凍したディレクトリ、ANTはコマンドの位置 java は何・・・Tomcatの位置か? apxsとapr、tomcatの指定だけでもよさそう?

# make

build とか apache-1.3 とか apache-2.0 のなかに mod_webapp.so ができています。
build の中には、docs や libs objs のディレクトリもあります。
make install はできません。
INSTALL.txt を読めばいいのかな?

(--with-aprを指定しなかったので? ) /usr/local/apr/lib/libapr-0*のいろいろを /usr/lib へコピーしてみました。
mod_webapp.so は apacheのmodulesの中へ。

Apache に追加する設定

いろいろ試行錯誤してみました。

httpd.conf に、いろいろ追加します。
組み込む

LoadModule webapp_module modules/mod_webapp.so
AddModule mod_webapp.c

これはどういう意味?

WebAppConnection ConnectionName warp hostname:8008
WebAppDeploy examples ConnectionName /examples
# WebAppInfo info

コメントをはずすと、http://ServerName/info でいろいろ参照できます。

WebAppConnection は、Tomcat 1つ単位に1つだけ指定すればいいです。
ConnectionName は自由に付けられるようです。
hostname は VirtualHost 等の ServerName に対応した名前です。外部に公開する場合 localhost ではいけません。
hostname もTomcatが動作しているサーバ名にしてください。Apacheのバーチャルサーバ名は関係ありません。全然問題ないです。どこかに書いていたのは、たぶん実験不足からでしょう。
WebAppDeploy は、 WebApps内の後述のPATH などかな。ROOT と書けばROOT につながりましたが、ここはちょっと調査不足です。

Tomcat側の設定

Tomcat 側の conf/server.xml の webapp の設定のコメントをはずす必要があります。
Host もその中に複数書いてやれば、バーチャルホストにも対応できます。Standalone 側の設定からコピーしてきましょう。ファイルの位置も、相対パス、絶対パス共に設定可能です。簡単ですね。

<Service 〜> ← Standalone のサービス
(略)
</Service>
<Service name="Tomcat-Apache"> ← Warp のService
<Connector 〜/> ← WarpのConnector
<Engine 〜>
<Host name="hostname" debug="0" appBase="appDir" 〜>
<Context path="path" docBase="docDir" debug="0"/>
</Host>
<Host name="hostname" debug="0" appBase="appDir" 〜>
<Context path="path" docBase="docDir" debug="0"/>
</Host>
</Engine>
</Service>

hostname は仮想ドメイン名を指定します。
appDir は、Tomcat の webapps に相当するディレクトリの位置を自由な位置に指定できます。
path は、URL 中の対応するディレクトリです。 ドメインのRoot から対応する場合はpath="" です。
docDir は、appDir(webapps等)の中にある ROOT とか examples といったディレクトリの位置です。これもファイルシステム中の自由な位置に変更可能です。
サンプルでは、 <Context path="" docBase="ROOT" 〜>のような指定がありますね。

参考文献
なし?

Get Thunderbird


[掲示板] © 2002-2003 おこめ@しいしせねっと