>> HOME >> FC5 MENU >> Java Servlet/JSP サーバー (Tomcat) バイナリインストール編
Tomcat とは、Jakarta Project のひとつとして開発されているオープンソースソフトウェアで、Java Servlet・JSP(JavaServer Pages) を処理するアプリケーションサーバーです。
ここでは、Tomcat のバイナリファイルをダウンロードしてきて配置します。
Apache との連携には、mod_proxy_ajp を用います。mod_proxy_ajp には、mod_proxy が必須なようですので、Apache の設定で mod_proxy有効 であることを確認します。なお、mod_proxy_ajp は Apache インストール時に一緒にインストールされています。

1. Sun の J2SE(Java 2 Platform Standard Edition) のインストール
1 ) Sun の J2SE(Java 2 Platform Standard Edition) の取得
2 ) Sun の J2SE(Java 2 Platform Standard Edition) のインストール
2. Sun の J2SE(Java 2 Platform Standard Edition) の設定
1 ) 環境変数に JAVA のパスを追加
1 ) 追加した環境変数の反映
3. Jakarta Tomcat のインストール
1 ) Jakarta Tomcat の取得
2 ) Jakarta Tomcat のインストール
4. Jakarta Tomcat の設定
1 ) 環境変数に Tomcat のパスを追加
2 ) 追加した環境変数の反映
3 ) Jakarta Tomcat 設定ファイル /usr/local/tomcat/conf/web.xml の編集
5. Tomcat の起動と自動起動設定
1 ) Tomcat の起動
2 ) Tomcat の自動起動設定
6. Tomcat の動作確認
7. Apache の設定
1 ) mod_proxy の有効を確認
8. サンプルアプリケーションの構築
1 ) ドキュメントパスの作成
2 ) サンプルアプリケーションの tomcat 設定ファイルを追加
3 ) Apache と Tomcat の連携
4 ) サンプル Servlet の作成
5 ) サンプル JSP の作成
9. Tomcat の再起動
1 ) Apache の再起動
2 ) Tomcat の再起動
10. サンプルアプリケーションの動作確認
1 ) Servlet の確認
2 ) JSP の確認
1. Sun の J2SE(Java 2 Platform Standard Edition) のインストール
1 ) Sun の J2SE(Java 2 Platform Standard Edition) の取得
直接、ダウンロードが出来ませんので、以下の手順を実施します。
Sunダウンロードページ で 「JDK のダウンロード」をクリックします。
使用許諾契約の「Accept License Agreement」ラジオボタンを選択します。
Linux Platform にある「Linux RPM in self-extracting file」をクリックしてダウンロードします。
ダウンロードした jdk-1_5_0_07-linux-i586-rpm.bin/root にコピーします。
2 ) Sun の J2SE(Java 2 Platform Standard Edition) のインストール
[root@linux ~]# chmod +x jdk-1_5_0_07-linux-i586-rpm.bin 

[root@linux ~]# ./jdk-1_5_0_07-linux-i586-rpm.bin 
Sun Microsystems, Inc. Binary Code License Agreement

for the JAVA 2 PLATFORM STANDARD EDITION DEVELOPMENT
KIT 5.0

SUN MICROSYSTEMS, INC.  ("SUN") IS WILLING TO LICENSE
THE SOFTWARE IDENTIFIED BELOW TO YOU ONLY UPON THE
CONDITION THAT YOU ACCEPT ALL OF THE TERMS CONTAINED IN
THIS BINARY CODE LICENSE AGREEMENT AND SUPPLEMENTAL
LICENSE TERMS (COLLECTIVELY "AGREEMENT").  PLEASE READ
THE AGREEMENT CAREFULLY.  BY DOWNLOADING OR INSTALLING
THIS SOFTWARE, YOU ACCEPT THE TERMS OF THE AGREEMENT.
INDICATE ACCEPTANCE BY SELECTING THE "ACCEPT" BUTTON AT
THE BOTTOM OF THE AGREEMENT.  IF YOU ARE NOT WILLING TO
BE BOUND BY ALL THE TERMS, SELECT THE "DECLINE" BUTTON
AT THE BOTTOM OF THE AGREEMENT AND THE DOWNLOAD OR
INSTALL PROCESS WILL NOT CONTINUE.

1.  DEFINITIONS.  "Software" means the identified above
in binary form, any other machine readable materials
(including, but not limited to, libraries, source
  :
  :
使用承諾書 ( Space Key で送る )
  :
  :
warranty and limitation of liability provisions in
paragraphs 5 and 6 of the Binary Code License Agreement
shall apply to all Software in this distribution.

H.  Termination for Infringement.  Either party may
terminate this Agreement immediately should any
Software become, or in either party's opinion be likely
to become, the subject of a claim of infringement of
any intellectual property right.

For inquiries please contact:  Sun Microsystems, Inc.,
4150 Network Circle, Santa Clara, California 95054,
U.S.A.  (LFI#143333/Form ID#011801)

Do you agree to the above license terms? [yes or no]
yes 
Unpacking...
Checksumming...
0
0
Extracting...
UnZipSFX 5.42 of 14 January 2001, by Info-ZIP (Zip-Bugs@lists.wku.edu).
  inflating: jdk-1_5_0_07-linux-i586.rpm
準備中...                   ########################################### [100%]
   1:jdk                    ########################################### [100%]

Done.


# ダウンロードしたファイルを削除。
[root@linux ~]# rm -f jdk-1_5_0_07-linux-i586-rpm.bin 

# インストールの過程でできたファイルを削除。
[root@linux ~]# rm -f jdk-1_5_0_07-linux-i586-rpm 
2. Sun の J2SE(Java 2 Platform Standard Edition) の設定
1 ) 環境変数に JAVA のパスを追加
[root@linux ~]# vi /etc/profile 

  :
  :
for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        . $i
    fi
done

unset i
unset pathmunge

# 以下を追加
JAVA_HOME=/usr/java/jdk1.5.0_07
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
2 ) 追加した環境変数の反映
[root@linux ~]# source /etc/profile 
3. Jakarta Tomcat のインストール
1 ) Jakarta Tomcat の取得
Tomcat のバイナリファイルを Jakarta Projectダウンロードサイト からダウンロードします。
ダウンロードした apache-tomcat-5.5.17.tar.gz を /usr/local/ にコピーします。
2 ) Jakarta Tomcat のインストール
[root@linux ~]# cd /usr/local/ 

[root@linux local]# tar xvfz jakarta-tomcat-5.0.28.tar.gz 
  :
  :
jakarta-tomcat-5.0.28/webapps/tomcat-docs/servletapi/javax/servlet/package-use.html
jakarta-tomcat-5.0.28/webapps/tomcat-docs/servletapi/overview-frame.html
jakarta-tomcat-5.0.28/webapps/tomcat-docs/servletapi/overview-summary.html
jakarta-tomcat-5.0.28/webapps/tomcat-docs/servletapi/overview-tree.html
jakarta-tomcat-5.0.28/webapps/tomcat-docs/servletapi/package-list
jakarta-tomcat-5.0.28/webapps/tomcat-docs/servletapi/packages.html
jakarta-tomcat-5.0.28/webapps/tomcat-docs/servletapi/resources/inherit.gif
jakarta-tomcat-5.0.28/webapps/tomcat-docs/servletapi/serialized-form.html
jakarta-tomcat-5.0.28/webapps/tomcat-docs/servletapi/stylesheet.css
jakarta-tomcat-5.0.28/webapps/tomcat-docs/setup.html
jakarta-tomcat-5.0.28/webapps/tomcat-docs/ssi-howto.html
jakarta-tomcat-5.0.28/webapps/tomcat-docs/ssl-howto.html
jakarta-tomcat-5.0.28/webapps/tomcat-docs/status.html
jakarta-tomcat-5.0.28/webapps/webdav/WEB-INF/web.xml
jakarta-tomcat-5.0.28/webapps/webdav/index.html
jakarta-tomcat-5.0.28/webapps/webdav/tomcat-power.gif
jakarta-tomcat-5.0.28/webapps/webdav/tomcat.gif


# ダウンロードしたファイルを削除。
[root@linux local]# rm -f jakarta-tomcat-5.0.28.tar.gz 

# ディレクトリ名が長く、アクセスするのに面倒ですので、短く変更します。
[root@linux local]# mv jakarta-tomcat-5.0.28 tomcat 
4. Jakarta Tomcat の設定
1 ) 環境変数に Tomcat のパスを追加
[root@linux ~]# vi /etc/profile 

  :
  :
for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        . $i
    fi
done

unset i
unset pathmunge

# 以下 4行を追加
TOMCAT_HOME=/usr/local/tomcat
CATALINA_HOME=/usr/local/tomcat
export TOMCAT_HOME
export CATALINA_HOME
JAVA_HOME=/usr/java/jdk1.5.0_07
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
# CLASSPATH に ":$CATALINA_HOME/common/lib:$CATALINA_HOME/common/lib/servlet-api.jar" を追加
CLASSPATH=$CLASSPATH:$CATALINA_HOME/common/lib:$CATALINA_HOME/common/lib/servlet-api.jar
export JAVA_HOME
export PATH
export CLASSPATH
2 ) 追加した環境変数の反映
[root@linux ~]# source /etc/profile 
3 ) Jakarta Tomcat 設定ファイル /usr/local/tomcat/conf/web.xml の編集
ディレクトリ一覧を表示しないようにします。
[root@linux ~]# vi /usr/local/tomcat/conf/web.xml 

    <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>
          org.apache.catalina.servlets.DefaultServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <!-- true から false へ変更 -->
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
5. Tomcat の起動と自動起動設定
1 ) Tomcat の起動
[root@linux ~]# /usr/local/tomcat/bin/startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JAVA_HOME:       /usr/java/jdk1.5.0_07
2 ) Tomcat の自動起動設定
Tomcat の自動起動スクリプトを作成します。
[root@linux ~]# vi /etc/rc.d/init.d/tomcat 

#!/bin/sh
#
# Startup script for the tomcat
#
# chkconfig: 345 80 15
# description: Tomcat is a Servlet+JSP Engine.

# Source function library.
. /etc/rc.d/init.d/functions

export TOMCAT_HOME=/usr/local/tomcat
export CATALINA_HOME=/usr/local/tomcat
export JAVA_HOME=/usr/java/jdk1.5.0_07
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/common/lib

case "$1" in
'start')
        if [ -f /usr/local/tomcat/bin/startup.sh ]; then
            echo "Starting the tomcat service "
            "/usr/local/tomcat/bin/startup.sh"
        fi
        ;;
'stop')
        echo "Stopping the tomcat service."
        "/usr/local/tomcat/bin/shutdown.sh"
        ;;
'restart')
        $0 stop
        $0 start
        ;;
*)
        echo "Usage: $0 {start|stop|restart}"
        ;;
esac
exit 0
Tomcat の自動起動スクリプトに実行権限を与えます。
[root@linux ~]# chmod +x /etc/rc.d/init.d/tomcat 
chkconfig へ Tomcat の自動起動スクリプトを追加します。
[root@linux ~]# chkconfig --add tomcat 
Tomcat の自動起動を設定します。
[root@linux ~]# chkconfig tomcat on 
[root@linux ~]# chkconfig --list tomcat 
tomcat          0:off   1:off   2:on    3:on    4:on    5:on    6:off
6. Tomcat の動作確認
以下のアドレスに接続し、それぞれのサンプルページが表示されることを確認します。
http://mountainbigroad.jp:8080/servlets-examples/
http://mountainbigroad.jp:8080/jsp-examples/
※ Tomcat はポート番号 8080 で要求を待っているため、URL に 8080 を指定する必要があります。
7. Apache の設定
1 ) mod_proxy の有効を確認
Apache 設定ファイル /etc/httpd/conf/httpd.conf で、Tomcat との連携に使用する mod_proxy有効 であることを確認します。
[root@linux ~]# vi /etc/httpd/conf/httpd.conf 

  :
  :
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
# コメントされていないことを確認
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so

  :
  :
8. サンプルアプリケーションの構築
ここでは、/fedora/ というディレクトリに、現在時間を表示するだけの、HelloServlet.class というサーブレットと、hello.jsp という JSP(Java Server Pages) を作成し、いずれも http://mountainbigroad.jp/fedora/〜 でアクセスできるようにします。
1 ) ドキュメントパスの作成
[root@linux ~]# mkdir -p /usr/local/tomcat/webapps/fedora/WEB-INF/classes/ 
[root@linux ~]# mkdir -p /usr/local/tomcat/webapps/fedora/jsp/ 
2 ) サンプルアプリケーションの tomcat 設定ファイルを追加
[root@linux ~]# vi /usr/local/tomcat/conf/Catalina/localhost/fedora.xml 

<Context path="/fedora" docBase="/usr/local/tomcat/webapps/fedora" reloadable="true">
</Context>
3 ) Apache と Tomcat の連携
mod_proxy_ajp の設定ファイル /etc/httpd/conf.d/proxy_ajp.conf を編集します。
[root@linux ~]# vi /etc/httpd/conf.d/proxy_ajp.conf 

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

#
# When loaded, the mod_proxy_ajp module adds support for
# proxying to an AJP/1.3 backend server (such as Tomcat).
# To proxy to an AJP backend, use the "ajp://" URI scheme;
# Tomcat is configured to listen on port 8009 for AJP requests
# by default.
#

#
# Uncomment the following lines to serve the ROOT webapp
# under the /tomcat/ location, and the jsp-examples webapp
# under the /examples/ location.
#
#ProxyPass /tomcat/ ajp://localhost:8009/
#ProxyPass /examples/ ajp://localhost:8009/jsp-examples/

# 追加
ProxyPass /fedora/ ajp://localhost:8009/fedora/
4 ) サンプル Servlet の作成
[root@linux ~]# cd /usr/local/tomcat/webapps/fedora/WEB-INF/classes 

[root@linux classes]# vi HelloServlet.java 

import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloServlet extends HttpServlet {
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
              throws IOException, ServletException {

    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<HTML>");
    out.println("<BODY>");
    out.println(new java.util.Date());
    out.println("</BODY>");
    out.println("</HTML>");
  }
}
サンプル Servlet をコンパイルします。
[root@linux classes]# javac HelloServlet.java 
Servlet の URL 指定ファイル /usr/local/tomcat/webapps/fedora/WEB-INF/web.xml を作成します。
HelloSevlet.class ファイルに、http://mountainbigroad.jp/fedora/Hello でアクセスできるようにします。
[root@linux ~]# vi /usr/local/tomcat/webapps/fedora/WEB-INF/web.xml 

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app PUBLIC 
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <servlet>
    <servlet-name>Hello</servlet-name>
    <servlet-class>HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Hello</servlet-name>
    <url-pattern>/Hello</url-pattern>
  </servlet-mapping>
</web-app>
5 ) サンプル JSP の作成
[root@linux ~]# cd /usr/local/tomcat/webapps/fedora/jsp 

[root@linux jsp]# vi hello.jsp 

<HTML>
<BODY>
<%= new java.util.Date() %>
</BODY>
</HTML>
4. Tomcat の再起動
1 ) Apache の再起動
Tomcatの起動は「Apache」→「Tomcat」と、起動順番を厳守してください。
[root@linux ~]# service httpd restart 
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]
2 ) Tomcat の再起動
[root@linux ~]# service tomcat restart 
Stopping the tomcat service.
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JAVA_HOME:       /usr/java/jdk1.5.0_07
Starting the tomcat service
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JAVA_HOME:       /usr/java/jdk1.5.0_07
10. サンプルアプリケーションの動作確認
1 ) Servlet の確認
http://mountainbigroad.jp/fedora/Hello へアクセスして、現在時刻が表示されることを確認。
2 ) JSP の確認
http://mountainbigroad.jp/fedora/jsp/hello.jsp へアクセスして、現在時刻が表示されることを確認。