Tomcat3.3.1の設定

 Tomcat とはサーバー上で Java Servlet や JSP 等を動作させるためのWEBアプリケーションです。 Tomcat 単体でもWEBサーバーとして動作しますが、Apache 程の細かい設定はできません。 また使用するポートは標準で 8080 を使用していますので、見る側からは見づらいかもしれません。
ここではTomcatのインストールとApacheとの連携の仕方について掲載します。

≪ 項目 ≫
1.Tomcatのインストール
2.Tomcatの設定
3.mod_jk.soの作成
4.TomcatとApacheの再設定


 1.Tomcatのインストール

 ◆ Tomcatに必要なもの

 このページで、Tomcatをインストールする際、ダウンロードしてきたものを以下の通りです。
ファイル名説明ダウンロード先
j2eesdk-1_4_01-linux.bin Javaの本体です。J2SDKなら問題無いです。(Standard Edition、Enterprise Editionどちらでも良いです。J2REは不可) http://www.sun.com
jakarta-tomcat-3.3.1.tar.gz Tomcat本体です。Versionは3.3.1を使用します。 http://jakarta.apache.org/
jakarta-tomcat-3.3.1-src.tar.gz Tomcatのソースです。”mod_jk.so”を作成するのに使用します。 http://jakarta.apache.org/

 Javaのインストール

 まずは、Javaをインストールします。”j2eesdk-1_4_01-linux.bin”を”/usr/local/src”にコピーします。 コピーした”j2eesdk-1_4_01-linux.bin”のパーミッションが”755”でなければ”chmod”コマンドでパーミッションを変更してください。

[root@localhost /usr/local/src]# chmod 755 j2eesdk-1_4_01-linux.bin
[root@localhost /usr/local/src]# ./j2eesdk-1_4_01-linux.bin

以上の様に実行すれば、Javaのインストールされます。

 Tomcatのインストール

 次にTomcatのインストールします。と言っても”jakarta-tomcat-3.3.1.tar.gz”を解凍するだけでOKです。”jakarta-tomcat-3.3.1-src.tar.gz”も一緒に”/usr/local/src”にコピーして解凍しておきます。

[root@localhost /usr/local/src]# tar zxvf jakarta-tomcat-3.3.1.tar.gz
[root@localhost /usr/local/src]# tar zxvf jakarta-tomcat-3.3.1-src.tar.gz



 2.Tomcatの設定

 ◆ 環境変数の設定

 Tomcatの解凍が終わったら今度は環境変数の設定をします。Tomcatはroot権限でないと起動しないので”/root/.bash_profile”に環境変数を設定します。
以下の様に編集してください。

export PATH=$PATH:/opt/SUNWapperserver/jdk/bin <<--(1)
export JAVA_HOME=/opt/SUNWapperserver/jdk <<--(2)
export TOMCAT_HOME=/usr/local/jakarta-tomcat-3.3.1 <<--(3)
export APACHE_HOME=/usr/local/apache

 実際に必要な環境変数は (2) と (3) だけです。Java 本体が置いてある場所を”JAVA_HOME”と言う環境変数で、Tomcat 本体が置いてある場所を”TOMCAT_HOME”と言う環境変数で設定します。 その他の環境変数はカレントディレクトリィを移動させるのに便利なので設定しておきます。
  (1)(2)(3)はVersion等によってディレクトリィ名が違いますので注意してください。

 ◆ Tomcatの動作確認

 次は Tomcat の動作確認をします。
 起動の仕方は以下のシェルを実行します。

 /usr/local/jakarta-tomcat-3.3.1/bin/startup.sh

 実行時にエラーが無ければ、クライアントのマシンからブラウザを起動してアドレスの箇所に以下の様にアクセスします。

 http:// << サーバーのIPアドレス >> :8080

 以下の様な画面が出力されたらTomcatの起動はOKです。

tomcatのindex画面

 3.mod_jk.soの作成

 Tomcat と Apache の連携に必要な”mod_jk.so”の作成の仕方を掲載します。ここでは Apache (コンパイルしたもの)が既にインストールされているとします。
まずは、解凍した”jakarta-tomcat-3.3.1-src.tar.gz”で出来たのディレクトリィの中に
”/usr/local/src/jakarta-tomcat-3.3.1-src/src/native/mod_jk/apache1.3/Makefile.linux”
というファイルがあるので、それを以下の行を変更します。

 APXS=/usr/sbin/apxs
      ↓
 APXS=/usr/local/apache/bin/apxs

 次はコンパイルをします。以下の様に実行します。

 make -f Makefile.linux

 コンパイルでエラーが無ければ、同じディレクトリィ内に”mod_jk.so”が作成されます。 その作成された”mod_jk.so”を”/usr/local/apache/libexec”の中にコピーします。

 4.TomcatとApacheの再設定

 ◆ ディレクトリィの作成

 TomcatとApacheの再設定する前に、Java Servlet や JSP 等のクラスファイルの置き場所を決めます。 標準では”/usr/local/src/jakarta-tomcat-3.3.1/webapps/ROOT”に置きますが、Apache と連携するため置き場所を変えます。
 Apacheで設定したHTMLデータの置き場所(DocumentRoot)の直下にServlet用のディレクトリィを作成します。 ここでは、HTMLデータの置き場所を”/home/html-data”として、その中に Java Servletデータの置き場所として”lab-kage”というディレクトリィを作成する事にします。
 まずは以下の様な構成で、ディレクトリィを作成します。

 /home/html-data
      +--- /lab-kage
           +------ /META-INF
           +------ /WEB-INF   <<--(1)
                  +--- /classes

 ついでに、”/usr/local/src/jakarta-tomcat-3.3.1/webapps/ROOT/WEB-INF/web.xml”を (1) の直下にコピーしておきます。(起動に必要なので)

 ◆ mod_jk.confの編集

 次に”mod_jk.conf”は編集しますが、最初はファイルが存在しないので以下の様にTomcatを起動して”mod_jk.conf”を自動作成します。

[root@localhost /usr/local/jakarta-tomcat-3.3.1/bin/]# ./startup.sh jkconf

すると”/usr/local/jakarta-tomcat-3.3.1/conf/auto/mod_jk.conf”が作成されているので、そのファイルを以下の様に編集します。

 JkMount /admin ajp13
 JkMount /admin/* ajp13

 JkMount /examples ajp13
 JkMount /examples/* ajp13

 Alias /lab-kage "/home/html-data/lab-kage/"   <<--(1)

 JkMount /lab-kage/servlet/* ajp13
 JkMount /lab-kage/*.jsp ajp13

 <Location "/lab-kage/WEB-INF/">          <<--(2)
   AllowOverride None
   deny from all
 </Location>

 <Location "/lab-kage/META-INF/">
   AllowOverride None
   deny from all
 </Location>

 (1)の部分から追加します。
 (2)からは各ディレクトリィに対してセキュリティを掛けます。


 ◆ Apache(httpd.conf)の設定

 ”httpd.conf”の最後の行に下の1行を追加します。

 include /usr/local/jakarta-tomcat-3.3.1/conf/auto/mod_jk.conf
                                        ↑(mod_jk.confを指定します。)

 ◆ Tomcat(server.xml)の設定

 Tomcatの設定をします。Apacheとの連携なので Tomcat 自身のWEBサーバーとしての機能を停止させます。
以下の部分をコメントアウトします。

     〜 省略 〜
 <!--                     <<--(1)
 <Http10Connector port="8080"
    secure="false"
    maxThreads="100"
    maxSpareThreads="50"
    minSpareThreads="10" />
 -->                      <<--(1)
     〜 省略 〜

 コメント化の仕方は(1)の様にすれば良いです。
 次に上で作成した”/lab-kage”(Servlet を置くディレクトリィ)の情報を記述します。
 以下の様に追加してください。

 <Context path="/lab-kage"
   docBase="/home/html-data/lab-kage"
   crossContext="true"
   debug="0"
   reloadable="false"
   trusted="false">
 </Context>

 ContextManagerタグの中に記述してください。
 以上で設定は終わりです。

 ◆ 動作確認

 実際に連携が出来ているか確認します。
 テストプログラムとして以下のソースを作成しました。

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
  public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    out.println("Hello World");
  }
}

このソースをコンパイルして”HelloWorld.class”というファイルを作成し”/home/html-data/lab-kage/WEB-INF/classes”の中にコピーします。
 次に Tomcat を起動してから Apache を起動します。

 $TOMCAT_HOME/bin/startup.sh
 $APACHE_HOME/bin/apachectl start
 (Tomcatの起動は root権限で)

ここまでエラーが無ければ、ブラウザを起動してアドレスを以下の様にして確認します。

 http:// << WEBサーバーのアドレス >> /lab-kage/servlet/HelloWorld

これでブラウザに”Hello World”と出力されればOKです。
ちなみに、下線部の部分は”mod_jk.conf”の”JkMount /lab-kage/servlet/* ajp13”の部分で変更できます。



先頭に戻る Web設定のページに戻る TOPページに戻る