●J2SDK Tomcat + Apacheの連携 OS:Linux Debian
 
Tomcat4.1.31にセキュリティホールがでたので、パッチをあててね。
  パッチはこちら
 
Debian(sarge)のOS上でJavaを動作させる環境を設定します。
今回使用するアプリケーションのバージョン等は以下の通り。

・tomcat4 4.1.31-3(aptからインスコ)
・tomcat4-webapps 4.1.31-3(aptからインスコ)
・java-common 0.22(aptからインスコ)
・fakeroot 1.2.10(aptからインスコ)
・libapache-mod-jk1.2.5-2(aptからインスコ)
・j2sdk-1_4_2_09-linux-i586.bin
・j2sdk1.4_1.4.2.09-0.13_i386.deb
・mpkg-j2sdk_0.13_i386.deb

まずは、Tomcatをインストールします。これはaptで簡単にインストールできます。
# su (ルートになる)
# apt-get install tomcat4 tomcat4-webapps
 
tomcat4-webappsは、Javaのサンプルプログラム等も格納していますので、tomcatのインストールと一緒に入れておきます。
 
tomcat4のtomcat4-webappsインストールが完了したら、J2SDKをインストールします。今回は、どうやってもaptからインストールされなかったので、http://z42.de/ここのサイトからパッケージ(mpkg-j2sdk_0.13_i386.deb)をダウンロードします。
Debianのパッケージを作成してからインストールするとjava(1|2)-runtime,java-virtual-machine等、Javaに必要な仮想パッケージを提供してくれるので便利です。設定は以下の通りです。
# apt-get install fakeroot //mpkg-j2sdk を使うときにfakerootが必要だと言われるため。
# dpkg -i mpkg-j2sdk_0.13_i386.deb //エラーがでましたが、普通に動作するので無視
※エラーの場合は、必要なパッケージをaptしてあげると良いです。

 
# chmod a+x j2sdk-1_4_2_09-linux-i586.bin
# mpkg-j2sdk j2sdk-1_4_2_09-linux-i586.bin
 
--ここで同じフォルダに、「mpkg-j2sdk_0.13_i386.deb」ファイルができます。
# dpkg -i j2sdk1.4_1.4.2.09-0.13_i386.deb
 
※補足
ソースからTomcatを展開した場合は、パスを通すのを忘れずに。
# vi /etc/profile
 
export JAVA_HOME=/usr/lib/j2sdk1.4
export CLASSPATH=$JAVA_HOME/lib/tools.jar
 
# source /etc/profile
 
ここまでで問題なければ、Tomcatを起動します。
# /etc/init.d/tomca4 start
 
/etc/tomcat4/server.xmlに書いてあるポートを調べ、ブラウザーからチェックします。
 
http://ホスト:8180
 
Tomcatのページが表示すればインストール成功です。
次は、apacheと連動させてポート番号を指定せずにJavaを動作させます。apacheとtomcatを連携させるのに、「mod_jk」を使用します。これもaptでインストールできます。
今回mpkg-j2sdが入ってると依存エラーか何かでaptでエラーがでたので、mpkg-j2sdはj2sdkインストール後、削除しました。
# dpkg -r mpkg-j2sdk //aptがエラーをだすため削除
※mpkg-j2sdkがエラーなくインスコできてる場合は、消さなくてもいいです。

 
# apt-get install libapache-mod-jk
 
※補足
apache2で連携する場合、「libapache2-mod-jk2」をインストールしないといけないはずなんですが、aptすると「libapache2-mod-jk」に統一されましたと、書いてるっぽいエラーがでるので、「libapache2-mod-jk」をインストールします。
# apt-get install libapache2-mod-jk
その後、/usr/share/doc/libapache2-mod-jk/httpd_example_apache2.conf/etc/apache2/mods-enabled/jk.confにコピーし、
「JkMount /examples/* ajp13_worker」を追加します。
この場合、workers.propertiesは/etc/libapache2-mod-jk/workers.propertiesに自動的にできるので、以下の作業は不要です。

/etc/apache/conf/にworkers.propertiesというファイルを作ります。内容は以下の通り。
〜 workers.properties の内容 〜
worker.list=worker1

worker.worker1.port=8009
//ajp13が使用するポート
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
 
httpd.confも変更します。今回は一番下に追加しました。
〜 httpd.conf の内容 〜



#Tomcat4
JkWorkersFile /etc/apache/conf/workers.properties
JkLogFile /var/log/apache/mod_jk.log
JkLogLevel debug //動作チェックのためdebug。
JkMount /examples/* worker1
これで設定完了です。
TomcatとApacheをStopして、Tomcat、Apacheの順番で起動します。
 
http://ホスト/examples/
※補足
ソースからコンパイルした場合は、
http://ホスト/jsp-examples/
というアドレスになります。
※さらに補足
これは、パッケージの場合、/usr/share/tomcat4/webapps/にあるコンテキスト定義ファイルで、<Context path="/examples" docBase="/usr/share/tomcat4/server/webapps/examples" debug="0" reloadable="false" crossContext="true" privileged="false">
という感じで、/usr/share/tomcat4/server/webapps/examplesがベースですよと指定してある。つまりこのファイルは、エイリアスのようなものなのかな。ソースにはこういう記述はありません。
 
これでJavaの画面が表示されればOKです。server.xmlを変更して8180ポートでアクセスできないようにしておくのがベストだと思います。
Tomcat4とTomcat5では設定が違ってくるので注意してください。