
Last update 2004.5.6
Tomcat 4とApache の連携は、あちこち探しても日本語資料が微量というか・・・まとまってないですねぃ・・・。
というわけで、解読というか、いろいろ試してApache との連携の解読に成功しました。
最近のバージョンにあわせてなおしてみました。mod_webappは古いものという位置づけなので、mod_jkやmod_jk2を使うとよいそうです。でも、mod_webappの方がはるかに簡単です。
このページのもくじ
ん〜、mod_jk2の資料が不足気味なので、mod_webappにも挑戦してみることにしましょうか。
VirtualHost へも対応できます。
# tar zxvf autoconf-2.57.tar.gz
# cd autoconf-2.57
# ./configure
# make
# make check 時間がかかる
# make install
# 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
# ./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の中へ。
いろいろ試行錯誤してみました。
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 側の 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" 〜>のような指定がありますね。
参考文献
なし?