Tomcat > A-1.簡単構築編

目的

代表的なJavaアプリケーションコンテナであるTomcatと、代表的なHTTPサーバApacheを連携させる設定方法について記したメモです。
またTomcatを動作させるために必要なJDKのインストール方法についても記述しています。



前提環境・ソフトウェアバージョン(OS、Kernel、Apache、JDK、Tomcat)

OS Redhat Enterprise Linux ES 4 Update6
Kernel 2.6.9-67.EL
Apache 2.2.8
JDK 1.5.0_15
Tomcat 6.0.16
(1)事前に上記バージョンのApache2.2.8がインストールされている必要があります。
(2)Apacheをビルドする際に次のビルド設定が指定されている必要があります。
--enable-proxy=yes
--enable-proxy-ajp=yes


概要

(1)ダウンロードサイトから各パッケージの入手
(2)JDKのインストールおよびセットアップ
(3)Tomcatのインストール
(4)ApacheとTomcatの設定


ダウンロードサイトから各パッケージの入手

  • JDKの入手
Sun Microsystemsのサイト http://java.sun.com/ からLinux x86プラットフォーム向けのパッケージをダウンロードします。
RPMパッケージ(*.rpm)形式と、自己解凍(*.bin)形式がありますが、今回は自己解凍(*.bin)形式をダウンロードします。

※注意事項
Sun MicrosystemsのJDKパッケージのダウンロードサイトは、製品のバージョンアップとともに、変更されることが多いので、古いバージョンをダウンロードする場合は以下のArchiveサイトからダウンロードします。
http://java.sun.com/products/archive/
尚この際、製品のサポートポリシー(EOL = End of Life)移行期間などを確認する必要があります。
現時点([2008/06/26]現在)においても、既に5.0(1.5)系はEOL移行期間で6.0系を使うことが推奨されています。


  • Tomcatの入手
Apache Tomcatサイト http://tomcat.apache.org/ からダウンロードします。
今回の場合、Linux用のGnuZip圧縮(*.gz)形式ダウンロードするため、以下のArchiveサイトからダウンロードします。
http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.16/bin/
apache-tomcat-6.0.16.tar.gz Linuxプラットフォーム向けのGnuZip圧縮形式のパッケージ
apache-tomcat-6.0.16.exe Windowsプラットフォーム向けのインストーラパッケージ
apache-tomcat-6.0.16-fulldocs.tar.gz このバージョンのドキュメントのGnuZip圧縮形式のパッケージ
apache-tomcat-6.0.16-deployer.tar.gz ★要調査★(多分、拡張のデプロイツール??)
*.asc 各ファイルの署名ファイル
*.md5 各ファイルのMD5チェックサムファイル
http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.16/ URLにはKEYS(公開鍵)ファイルもあります。
必要に応じてダウンロードします。


JDKのインストールおよびセットアップ

  • インストール
自己解凍形式のため、以下のコマンドを実行します。
jdk-1_5_0_15-linux-i586.bin <ENTER>
Sun Microsystems, Inc.  Binary Code License Agreement

for the JAVA 2 PLATFORM STANDARD EDITION DEVELOPMENT KIT 5.0
:
(省略)
:
Do you agree to the above license terms? [yes or no]
yes <ENTER>
上記操作により、カレントディレクトリにJDK一式が解凍されます。
解凍されたディレクトリを以下のコマンドより、適切な位置に配置します。
mv -p jdk1.5.0_15/ /opt/java/1.5.0 <ENTER>


  • パスの設定
インストールしたJDKの各プログラムを実行可能にするために、以下の環境変数を設定します。
環境変数名 意味 設定値
JAVA_HOME JDKのホームディレクトリ /opt/java/1.5.0
PATH 実行プログラムの検索パス $JAVA_HOME/bin:$PATH

今回はtomcatユーザの環境変数に、上記内容を追加するので、.bashrc ファイルに以下の記述を追記します。
export JAVA_HOME=/opt/java/1.5.0
export PATH=${JAVA_HOME}/bin:${PATH};
※事前にtomcatユーザを作成しておく必要があります。

  • 実際に正しくパスが設定されているかどうかの確認
以下のコマンドにより、インストールしたJavaのバージョン、パス設定が正しいかどうか?の確認を行います。
which java <ENTER>
/opt/java/1.5.0/bin/java

java -version <ENTER>
java version "1.5.0_15"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_15-b04)
Java HotSpot(TM) Client VM (build 1.5.0_15-b04, mixed mode, sharing)

  • 備考
最近のLinuxディストリビューションでは、同じアプリケーションで、複数のバージョンを同一システム上にインストールするための仕組みとして、alternativesと呼ばれる仕組みを採用していることがあります。
例えばビルドバージョンのみ異なる(バグフィックスしたバージョン 等)プログラムをインストールする際などに、この仕組みを使うことでパスの最設定などを一元化することが可能になります。
詳細については、別途alternativesについて調査します。


Tomcatのインストール

以下のコマンドより、解凍・展開します。
gunzip apache-tomcat-6.0.16.tar.gz <ENTER>
tar -xvf apache-tomcat-6.0.16.tar <ENTER>

解凍されたディレクトリを適切な位置に配置します。
パーミッションも実行ユーザであるtomcatに設定しておくのが望ましいでしょう。
cp -p apache-tomcat-6.0.16/ /opt/tomcat/6.0 <ENTER>
chown -R tomcat.tomcat /opt/tomcat/6.0 <ENTER>


ApacheとTomcatの設定

  • proxy_module および proxy_ajp_module が有効になっていることの確認
以下のファイルを確認します(※LoadModuleディレクティヴが並んでいる箇所を確認)。
/opt/apache/2.2/conf/httpd.conf ファイルの87,91行目(あたり)
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so


  • AJPポートへのリダイレクト設定の追加
/opt/apache/2.2/conf/httpd.conf の末尾に以下の記述を追加します。
#Redirect setting for AJP
<Location /manager/>
    ProxyPass ajp://localhost:8009/manager/
</Location>
具体的なApacheのLocationディレクティヴの記述に関しては http://www.apache.jp/manual/mod/core.html#location を参照してください。


  • 今回の例のためのユーザ設定
上記で設定した /manager コンテキストは、初期設定ではBASIC認証保護されています。
そのため、以下のファイルを編集し、ユーザ登録をしておく必要があります。
/opt/tomcat/6.0/conf/tomcat-users.xml ファイル
<tomcat-users>~</tomcat-users>のエレメントに <role /> エレメントと <user /> エレメントを追加する必要があります。
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager"/>
  <user username="tomcat" password="tomcat123" roles="manager"/>
</tomcat-users>
この例のManagerアプリケーションでのユーザ設定については以下のサイトで詳細に説明されています。
http://tomcat.apache.org/tomcat-6.0-doc/manager-howto.html


  • Tomcatが直接受け付けるHTTPリクエストポートを閉じる設定(オプション)
以下のファイルを編集します。
/opt/tomcat/6.0/conf/server.xml 66~69行目のConnector要素をコメントアウトします。
<!--
<Connector port="8080" protocol="HTTP/1.1"
              connectionTimeout="20000"
              redirectPort="8443" />
-->
この設定は、TomcatのHTTPリクストへ直接アクセスされることを回避するための設定です。


... 以上の設定が終了したら、Tomcat→Apacheの順にデーモンを起動します。
su - tomcat <ENTER>
cd /opt/tomcat/6.0/bin <ENTER>
./startup.sh <ENTER>
Using CATALINA_BASE:   /opt/tomcat/6.0
Using CATALINA_HOME:   /opt/tomcat/6.0
Using CATALINA_TMPDIR: /opt/tomcat/6.0/temp
Using JRE_HOME:       /opt/java/1.5.0
exit <ENTER>
cd /opt/apache/2.2/bin <ENTER>
./apachectl start <ETNER>

Webブラウザで http://apache_host/manager/html にアクセスします。
※apache_host はApacheを起動しているホスト名です。

このようにHTTPリクエストポート経由で、Tomcatコンテンツにアクセスしていることが確認できます。




最終更新日 : [2011-04-15]
最終更新:2011年04月15日 16:44
添付ファイル