以前インストールした Oracle JDeveloper 10g には Oracle9i Application Server が統合されているので,Web アプリケーションの実行・デバッグを行えます。しかし,想定している実行環境が Apache 2.0.x + Tomcat 4.1.x なので,これらの環境を MacOS X (10.3.5) に構築しました。
まず,MacOS X (10.3.5) にインストールされている Apache のバージョンを調べたところ
$ /usr/sbin/httpd -v Server version: Apache/1.3.29 (Darwin) Server built: Feb 4 2004 10:31:58
だったので,先に Apache 2.0 をインストールしました。
Apache 2.0.52 のソースをダウンロードして,コンパイル・インストールします。インストール先はデフォルトのままとしました。
$ tar xvfz httpd-2.0.52.tar.gz $ cd httpd-2.0.52 $ CFLAGS="-O2" ./configure --prefix=/usr/local/apache --enable-so=yes --enable-modules=most --enable-mods-shared=all $ make $ sudo make install
特に設定を変更せずに起動して
$ sudo /usr/local/apache/bin/apachectl start
ブラウザでアクセスしたところ,見慣れた画面が表示されて動作しているのを確認できました。
Apache の動作が確認できたので,次は Tomcat 4.1 です。Apache Jakarta Tomcat から Tomcat 4.1.31 のバイナリをダウンロードしてインストールします。インストール先は /usr/local/tomcat 配下とすることにしました。
$ cd /usr/local $ sudo tar xvfz 〜/jakarta-tomcat-4.1.31.tar.gz $ sudo mv jakarta-tomcat-4.1.31 tomcat
Tomcat は Apache と同様に nobody アカウントで起動するつもりなので,Tomcat が書き込みを行うディレクトリの所有者を変更します。
$ cd /usr/local/tomcat $ sudo chown -R nobody:nobody logs/ temp/ webapps/ work/ conf/
起動に必要な環境変数 JAVA_HOME と CATALINA_HOME を設定して,Tomcat を起動します。
$ JAVA_HOME=/System/Library/Frameworks/ JavaVM.framework/Home $ export JAVA_HOME $ CATALINA_HOME=/usr/local/tomcat $ export CATALINA_HOME $ sudo su -m nobody -c "$CATALINA_HOME/bin/startup.sh"
Tomcat 起動後,http://localhost:8080/ にブラウザでアクセスして,Tomcat が動作しているかを確認します。
最後に,Apache と Tomcat を連携するコネクタをインストールします。Apache Jakarta Tomcat からコネクタ JK2 のソースコードをダウンロードしてコンパイルします。
$ tar xvfz jakarta-tomcat-connectors-jk2-src-current.tar.gz $ cd jakarta-tomcat-connectors-jk2-2.0.4-src $ cd jk/native2/ $ ./configure --with-apxs2=/usr/local/apache/bin/apxs --with-apache2-include=/usr/local/apache/include --with-apache2-lib=/usr/local/apache/lib --with-tomcat41=/usr/local/tomcat
しかし,configure を実行すると以下のエラーが出てしまいました。オプションをいろいろ変えたりしてみましたが,同じところでエラーが出てしまいます。
configure: error: can't locate libapr
仕方がないので configure を調べてみると,以下の記述がありました。
if ${TEST} -f ${APACHE2_LIBDIR}/libapr-1.so; then APR_LIBS="-L${APACHE2_LIBDIR} -lapr-1" elif ${TEST} -f ${APACHE2_LIBDIR}/libapr-0.so; then APR_LIBS="-L${APACHE2_LIBDIR} -lapr-0" elif ${TEST} -f ${APACHE2_LIBDIR}/libapr.so; then APR_LIBS="-L${APACHE2_LIBDIR} -lapr"
MacOS X ではシェアードライブラリの拡張子が .dylib なので,見つけることができないようです。そこで libapr.so のシンボリックリンクを作成しました。
$ cd /usr/local/apache/lib $ sudo ln -s libapr-0.0.9.5.dylib libapr.so
JK2 のソースディレクトリへ戻り,再度 configure を実行したところ無事通りビルドできました。
$ ./configure --with-apxs2=/usr/local/apache/bin/apxs --with-apache2-include=/usr/local/apache/include --with-apache2-lib=/usr/local/apache/lib --with-tomcat41=/usr/local/tomcat $ make
ビルドしたモジュールと設定ファイルのテンプレートを,Apache のディレクトリへコピーします。
$ cd ../build/jk2/apache2 $ sudo cp mod_jk2.so /usr/local/apache/modules/ $ cd ../../../conf/ $ sudo cp workers2.properties /usr/local/apache/conf/
そして,Apache の設定ファイル httpd.conf へ以下の行を追加します。
LoadModule jk2_module modules/mod_jk2.so
これで準備完了なので,Apache と Tomcat を再起動します。
$ JAVA_HOME=/System/Library/Frameworks/ JavaVM.framework/Home $ export JAVA_HOME $ CATALINA_HOME=/usr/local/tomcat $ export CATALINA_HOME $ sudo "$CATALINA_HOME/bin/shutdown.sh" $ sudo /usr/local/apache/bin/apachectl stop $ sudo su -m nobody -c "$CATALINA_HOME/bin/startup.sh" $ sudo /usr/local/apache/bin/apachectl start
以下の URL にブラウザでアクセスして,Tomcat のサンプル JSP と サーブレットが動作するのを確認します。
http://localhost/examples/
これで Apache 2.0 + Tomcat 4.1 環境の構築が完了です。