サーバサイドスクリプトを実行させる( Apache + Tomcat で servlet 編 )

動作確認環境は以下の通りです コンテンツ

Apacheでtomcatを動かそう

tomcatはApacheなどと同じWebサーバです。tomcat はApacheなどにはない機能で、サーバサイドで Java 技術を利用するためのサーブレットエンジンというものを搭載しています。
詳しい動きなどは私もよく理解していませんが、JAVA Servlet や JSP を実行する時に使うヤツです。

ここでの説明は大まかに、

tomcatの持つWebサーバ機能を停止し、servletのみ動作させ、Apacheの中に組み込もう!

って事を前提にしています。
tomcatは「http://name.xxx.xxx:8080」の様に8080番ポートを指定しなければならないのですが、これもカッコ悪いので、無しで動く様にします。

JDKの入手・インストール

JDKはとにかく必要なものなので、以下のサイトへ行きJava 2 SDK 1.4.1 をダウンロードします。最新版はバージョン1.4.1です(2002/10/20 現在)
http://java.sun.com/j2se/1.4.1/ja/download.html

図T-01 JDKの入手

ダウンロードが済んだら、ダウンロードしたj2sdk-1_4_1-rc-windows-i586.exeをインストールします。インストールウィザードに従って進めていけばインストールは完了です。
インストールが完了すると「C:\j2sdk1.4.1」に以下の様なフォルダ構成になるはずです。

図T-02 標準インストール後のディレクトリ構成

tomcatの入手

私の使っているバージョンは4.0.2ですが、何故かダウンロード場所が見当たらないので近いバージョン4.0.6を紹介しておきます。2002/10/20現在の最新バージョンはhttp://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.1.12/です。
以下のサイトよりjakarta-tomcat-4.0.6.exeをダウンロードします。

http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.6/bin/

tomcatのインストール、でもその前に!

ダウンロードした exe ファイル(インストーラ)を実行する前に、JAVA_HOME 環境変数の設定が必要です。

[コントロールパネル] - [システム] -「詳細」タブをクリックし、環境変数の設定を行います。

図T-03 JAVA_HOME 環境変数の設定画面1

環境変数」の画面下部の[システム環境変数]欄に新規の環境変数として、下記の環境変数を投入します。(Path 環境変数が既に設定されている場合は、[編集] ボタンをクリックし、[値] 欄の一番後ろに、セミコロン " ; " で区切って追記してください。)

変数
JAVA_HOME C:\j2sdk1.4.1
Path C:\j2sdk1.4.1\bin

図T-03 JAVA_HOME 環境変数の設定画面2

設定を有効にするために再起動します(念のため)。
再起動後、MS-DOSプロンプトを起動し、以下のコマンドで設定が有効になっているか確認する事ができます。
set
以下の画面の赤枠部分が今回設定した部分です。(関係ない部分はボカしてあります。)

図T-04 環境変数の確認画面 赤枠部分に注目

tomcatのインストール

ダウンロード・環境変数の設定後、いよいよtomcatのインストールです!
ダウンロードした exe ファイルを起動させるとインストーラが起動し、自動的にインストールが始まります。

インストールの途中以下の画面が表示される時があるので、「NT Service [NT/2k/XP only]」にチェックを入れます。( 図T-05 )

図T-05 tomcatのインストール中のポイント

インストール終了後、再起動をして以下のディレクトリを確認して下さい。
C:\Program Files\Apache Tomcat 4.0
下図の様にtomcatに関するファイル達が展開されているはずです。

図T-06 tomcat標準インストール後のディレクトリ構成

正常にインストールできたか、確認をしてみましょう。
[スタート] - [プログラム] メニューに新しく作成された [Apache Tomcat 4.0] - [Start Tomcat] を実行するとコマンドプロンプト画面が立ち上がり
tomcat が起動、待機状態となります。( 図T-07 )
( tomcat の起動は C:\Program Files\Apache Tomcat 4.0\bin にある startup.bat からでも同様に行う事ができます。)

図T-07 tomcatの起動

tomcatの起動を確認して、 http://127.0.0.1:8080/ にアクセスし、tomcat のホームページが表示されれば、tomcat のインストールは成功しています。

図T-08 tomcatのホームページ

ここで、上図( 図T-08 )のページが正常に表示されない場合は、環境変数の設定の確認や、tomcat起動のプロンプト画面( 図T-07 )にエラーメッセージが表示されていないかを確認してみましょう。

実際にサーブレットが実行できるかも確認しましょう。
上図( 図T-08 )のリンクより、[ServletExsample] をクリックし、「Hello World」の[Execute] をクリックします。
そこで、「Hello World!」と表示されていれば tomcat の設定、JDK の設定が正常に完了しています

tomcat の終了は、[スタート] - [プログラム] - [Apache Tomcat 4.0] - [Stop Tomcat] で終了します。

▲ページの最上部に戻る

Apacheとtomcatを並行運用しよう

tomcat を使いサーブレットは動く様になりました。が!Apacheとtomcatを並行運用することにより、HTTPアクセスをApacheに集中させることが可能です。
tomcat自身だけでもWebサーバとしての運用が可能の様ですが、Apacheと比べアクセス処理や設定の容易性などの面で相当劣るようです。
この為、ApacheのバックグラウンドでサーブレットエンジンのみとしてのtomcatをApacheに組み込む事が一般的な様です。
これにより、tomcatのアクセスで必要であったポート番号の指定が不要になります。

tomcatとApacheの並行運用には webapp-module を利用します。
tomcatの機能を利用したコンテンツを表示・実行しようとすると以下の様な不具合が確認されています

この項目の設定を試される方はこれらの事柄をご了承の上、設定して下さい。

私も少なからず不具合が発生しています。不具合の内容は、サーバマシン上のローカルでサーブレットを実行しようとすると、実行できる時と全く出来ない時があります。(Web経由で実行すると問題なく動作する。)
私はサーバマシン上でサーブレットの開発を行いますので、それではよろしくない!のでサーバマシン上ではローカル専用に別バージョンのtomcatを使用しています
Borland JBuilder 7 Personalでサーブレットを開発し、jakarta-tomcat-3.2.4 でローカルチェックを行っています。
この別バージョンtomcat法はtomcat同士の競合もおこらないので便利です。この方法は今後アップして行く予定です。

webapp-module の入手と設定

Chapter 4. The Warp connectorに行き webapp-module-1.0-tc40-windows.zip をダウンロードします。

ダウンロードしたファイルを解凍し、mod_webapp.solibapr.dll
C:\Program Files\Apache Group\Apache\modules
に格納します。( 図T-09 )

図T-09 mod_webapp.so と libapr.dllを格納

次に、C:\Program Files\Apache Group\Apache\conf
にあるhttpd.confをテキストエディタで開き、下記の通り 3 箇所に追記を行います。

 
194 行目付近 : # でコメントアウトされた LoadModule 文が並んでいる後ろ
追記文 LoadModule webapp_module modules/mod_webapp.so
242 行目付近 : # でコメントアウトされた AddModule 文が並んでいる後ろ
追記文 AddModule mod_webapp.c
ファイル最後部
追記文 <IfModule mod_webapp.c>
WebAppConnection warpConnection warp localhost:8008
WebAppDeploy examples warpConnection /examples/
WebAppInfo /webapp-info/
</IfModule>

図T-10 194 行目付近 : # でコメントアウトされた LoadModule 文が並んでいる後ろ

図T-11 242 行目付近 : # でコメントアウトされた AddModule 文が並んでいる後ろ

図T-12 ファイル最後部 追記文

次に、tomcat が持つ HTTP サーバ機能を停止するため
C:\Program Files\Apache Tomcat 4.0\conf
ディレクトリにある server.xml ファイルを編集します。
具体的には 80 行目付近の HttpConnector 宣言部分を <!-- と --> を使って下図のようにコメントアウトします。
該当箇所はテキストエディタの検索機能を使って "8080" 等の文字列を検索すればすぐに見つかるはずです。

図T-13 server.xml の編集 HTTPサーバ機能の停止

上図では「port="8081"」となっています。これはサーブレット開発時に8080ポートを別のtomcatに使用させる為です。

Apache と tomcat の連携の確認

設定が終了したら、設定通りにtomcatがApacheのバックグラウンドで動作しているか確認してみましょう。
現時点でtomcatかApacheが起動しているのならどちらとも停止させます

[スタート]メニューよりtomcatを起動します。tomcatを先に起動させます
tomcatが完全に待機状態になってからApacheを起動します。
必ず [tomcat] -> [Apache] の順で起動します。先にApacheを起動するとtomcatが動作しない時があります!

両方の起動を確認したら、ブラウザを起動し、URL欄に
http://localhost/webapp-info/
にアクセスしてみましょう。下図の様に諸所の情報が表示されます。

図T-14 情報

図T-14 において、上部の表の「Deployed」が「TRUE」になっている事を確認します。
続いて下部の表の最下部「Configuration Details」中に「(Connected)」になっている事を確認します。
これらの確認がOKならApacheとtomcat連携は正常です。もし「FALSE」や「Not Connected」になっているとNGです。設定を見直して下さい。

WebApp Library Configuration 画面を確認したら
http://localhost/examples/servlets/index.html
へアクセスし、サーブレットサンプルの一覧画面を表示します(tomcatをインストールした時に表示した画面ですね。)。
URLのポート番号指定は不要です。つまり、デフォルトの 80 番ポートアクセスで tomcat にアクセスできている事が、ここで確認できます。)
先ほどと同様に適当なサンプルを Execute してみて下さい。できるハズです。

▲ページの最上部に戻る
Technical Top

Copyright© Kensuke Imai. All Right Reserved.
webmaster@miloweb.net