環境:
まず、各ファイルを取得する。
- Apacheの本家サイト(2.2用)からhttpd-2.2.2.tar.bz2をDL
Tomcatの本家サイト(5.x用)からjakarta-tomcat-5.0.28-src.zipをDL- 後述するが、上記のソース版ではなくバイナリ版を使用することにした。jakarta-tomcat-5.0.28.zipをDL
そして、まず Apache のインストールを行う。
今回の設定は以下の通り
これらの設定をしつつ、インストールする手順は以下の通り*1
まず、解凍から
tar xvf httpd-2.2.2.tar.bz2 cd ./httpd-2.2.2 ./configure --prefix=/usr/local/apache --enable-so --enable-proxy --enable-proxy-ajp ←soの読み込みは無くてもいいのかもしれない make make isntall
これで特にエラーがでなければインストールが完了。
ためしに起動して、ブラウザでアクセスしてきちんと動くことを確認してみる。
/usr/local/apache/bin/apachectl start ←起動 /usr/local/apache/bin/apachectl stop ←終了
で、その後必要なモジュールが組み込まれているかを確認する。
/usr/local/apache/bin/httpd -M
きちんと組み込まれていればこのリストにproxy_ajpの名前があるはずだ。
余談:いままでWindows上でしか試してなかった(というか、あまりApacheは詳しくなかった)ので、追加したモジュールってのはmoduleディレクトリに入っているのかと思っていたのだけど、実際は違った。
コンパイル時に組み込んでいるのだから、moduleディレクトリに入ってはいなくて、組み込まれた(staticな)リストなどで確認しなくてはいけなかったのだった。
さて、本題。
これでApacheのインストールが確認できたので、次はTomcatのインストールを行う。
で、さっそくTomcatのコンパイル……と行きたいところだが、なぜかbuildが上手く動かない。どうもbuild.xmlの中にあるURLが上手く動いていないようだ。そして、それに対する回答もちょっと調べたところでていないかったので、あきらめることにする。
というわけでTomcat5.0のバイナリの方をDLしてzipを解凍。ちなみに、Tomcatのバイナリに関しては解凍すればそのまま使える。
今回は検証が目的なのでひどいパスになっているけど、本来なら解凍後のディレクトリは名前を変えた*2ほうが良いし、場所も移動*3したほうが良い。
というわけで、とりあえず動くかの検証(この際、パーミッションの関係でシェルが動かせない場合があるので、適宜パーミッションは与えること)
※Sun純正のJ2SDKが入っていない場合はインストールすること(Gnu製?のJavaでは動かなかった。……これですげーハマったのだった)
/tmp/jakarta-tomcat-5.0.28/bin/startup.sh ←起動
これで、ポート8080でアクセスするとTomcatの画面が見れる。これで準備完了。
Apacheにはproxy_ajpが組み込まれているのは確認済みなので、連携のためにhttpd.confなどに以下のように加える
<Location /jsp-examples/> ProxyPass ajp://localhost:8009/jsp-examples/ </Location>
また、検証のために(適当なJSPファイルを見つけるのが面倒なので)$CATALINA_HOME/webapps/jsp-examples/にindex.jspを作成した。
以下にコードを書いておく。
<html>
<body>
<h1>aaa</h1>
<%
for(int i = 0; i < 10; i++) {
out.println("test");
}
%>
</body>
</html>
これで準備が整った。ドキドキしながらポート80でアクセスしてみよう。
http://localhost/jsp-examples/
どうだろう。ちゃんとアクセスできただろうか?
少なくとも上記の設定で現在の環境ではApacheとTomcatの連携は確認できた。