すがブロ

sugamasaoのhatenablogだよ

Apache2.2 + Tomcat5.0 を Linux環境で構築

環境:

  • FedoraCore4(RedHat) With VMware
  • Apache2.2.2(ソースから取得)
  • Tomcat5.028

まず、各ファイルを取得する。

そして、まず Apache のインストールを行う。
今回の設定は以下の通り

  • インストールパス:/usr/local/apache
  • 追加モジュール:mod_proxy
  • 追加モジュール:mod_proxy_ajp

これらの設定をしつつ、インストールする手順は以下の通り*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/
どうだろう。ちゃんとアクセスできただろうか?
少なくとも上記の設定で現在の環境ではApacheTomcatの連携は確認できた。

*1:インストール対象のパスのディレクトリは作成しておくこと

*2:tomcat5.0とか

*3:/usr/local/あたりとか