TOMCAT

Webアプリを作成するときに必要になります。アプリケーションサーバと呼ばれるものですが、これがないとjspとかservletとか動きません。Webアプリを作るときは必須です。 サーバにTOMCATを立ち上げておいて、そこに作成したアプリケーションを配置しておくとブラウザから作成したWebアプリが動きます。

このアプリケーションサーバ はTOMCAT以外にもいろいろあります。TOMCATみたいに無償のものもあれば、 WebLogic?や、WebSphere?とか有償のものもあります。 今回インストールするTOMCATのVersionは4.1.30です。TOMCATはVersionは5もありますが、そんなにインストールするには変わらないです。
※4.1.36が出てます。またこんな記事がありますので、ご注意を。Tomcatのセキュリティアップデートがリリースに - 4系ユーザは更新を

インストール

ではまず、ダウンロードします。 http://tomcat.apache.org/ 上記をクリックして、 Tomcat 4.1.30 KEYS を探してください。基本的にインストールは、4も5も6も一緒です。ここではWindowsでのインストールですので、Linuxの場合は下のtomcat6を参照してください。 その下に 4.1.30 exe PGP MD5 がありますので、 4.1.30.exeをクリックしてダウンロードします。 4.1.30とありますが、 バージョンが変わっているかもしれないので、http://jakarta.apache.org/site/binindex.cgiのページが表示されたら、tomcatで検索してみてください。 ダウンロードが終わりましたら、ダウンロードされたファイルをダブルクリックしてインストールを進めていきましょう。 基本的にはボタンを押して進めていけばインストールは終わります。 ここで何点か注意することがあります。

  • exampleはいらない。
    exampleのチェックをはずすとexampleはインストールされません。しかし、server.xmlにexampleのコンテキストの設定が残っており、起動時にこける場合があります。この場合はserver.xmlからexampleを消してください。
  • Tomcatをサービスとして起動させるかどうか。
    Serviceとして起動した場合は、windowsを起動したときに自動的に起動されます。 コントロールパネルの管理ツールからサービスを選択しますと一覧が表示されますが、ここに登録されることになります。 これは好みの問題ですが、私はServiceとしては登録しておき、スタートアップの種類は手動にしています。自動にしておいてもいいのですが、メモリがもったいないのでやめてます。
  • インストール先はどこに?
    これも好みの問題ですが、デフォルトではC:\Program Filesの下に作成されます。この「Program Files」に作られるのがいやで、いつもC:\Tomcat4.1にしてます。 なぜいやかというとProgramとFilesの間にスペースが入っている為、これが悪さをしたことがあったからです。ちょっとしたトラウマです。
  • ポートは何番にする?
    インストール中にポートについて聞かれます。デフォルトでは8080になっているはずです。 ここはそのままでもいいですが、必ず未使用のポートを指定してください。 たまに翻訳ソフトとかがつかっていたりして、Tomcatが立ち上がらない場合があります。最近ではOracleとぶつかりました。ですので、私は通常8086とかにしてます。 ちなみにこのサイトは80にしてます。 インストールしてから変更することもできます。 インストール後にC:\Tomcat4.1\confにserver.xmlというファイルが作成されます。そのファイルを開くと、
    <!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
    port="8080" minProcessors="5" maxProcessors="75"
    と書いてある場所があります。このport="8080"を変更して、セーブしてTomcatを再起動すればOKです。 では余談ですが、自分のマシンが使っているポートはどうやって調べたらいいのでしょうか?dos窓を開けて
    c:\netstat -a
    と打つと使っているポートがわかります。が、どのプログラムが使っているかわからないのです。仮に8080のポートを使っていたとしても、どのプログラムが使っているのかわからないので、対処にこまります。 私はこんなときはhttp://www.protect-me.com/freeware.htmlにある、 Active Ports というソフトを使っています。 ダウンロードしてzipですので、解凍して、setup.exeを実行してインストールしてください。実行すると、自分の使っているポートと使っているプログラムがわかります。

インストールが終わりましたら、環境変数を設定します。 その環境変数は、CATALINA_HOMEとCATALINA_OPTSです。linuxだとbin/setenv.shとかに設定すれば、startup.shからcatalina.shが呼ばれsetenv.shを呼んでくれます。windowsも同じ流れです。leopardでのサンプルです。

#!/bin/sh                                                                                           
export JAVA_HOME="/Library/Java/Home"
export CATALINA_HOME="/usr/local/tomcat-6.0.16"
export CATALINA_OPTS="-server -Xmx128m -Xms128m"

windowsでは

set CATALINA_HOME=H:\Tomcat 5.5
set CATALINA_OPTS=-server -Xmx512m -Xms128m

このCATALINA_HOMEというのは、TOMCATのホームディレクトリを指します。 ではCATALINA_OPTSとはなんでしょうか。これは、TOMCATが起動するときのオプションの設定になります。

-server -Xmx512m -Xms128m

これを設定しなくてもTomcatは起動します。しかし、自分の作成するアプリが大きくなるにつれて、メモリ不足(OutOfMemory?)になったりします。当然アプリの作りが悪い場合もあるのですが、ここは チューニングする際にまず見直すことになるところですので、自分のマシンのメモリと相談しながら設定しましょう。

-server サーバーVMとして動きます。
何も指定しない場合は、 クライアントVMとして動きます。 
Tomcatはサーバとして動かすので指定しています。
-Xmx メモリ最大使用量を指定します。
-Xms メモリ初期使用量を指定します。

@ITの記事が参考になりますので、参照してみてください。 また4系の場合、TomcatをWindowsサービスから起動するときのJavaランタイムオプションの設定方法も参考にしましょう。 Windowsの場合、サービスに登録されたTomcatの実行ファイルは catalina.batではなくtomcat.exeなので、レジストリを変更する必要があるそうです。さすがWindows、わけわからん。

ではtomcatを実行してみましょう。 Active Portsで8080を使っているプログラムがC:\j2sdk1.4\bin\java.exeであればたぶんTomcatは起動しています。 8080がなにも使っていなければ、スタートメニューのプログラムからApache Tomcat 4.1を選択し、Start Tomcat を選択して起動させましょう。 起動後はIEを立ち上げてアドレスに、http://localhost:8080と打ち込みます。

こんな画面がでれば成功です。 ではこんな画面ではなく、ページが見つかりませんだとか、ページが表示できませんだとかいわれたら、まずURLのポートがあっているか、またTomcatが動いているか確認してみてください。 確認はActive Portsでおこないます。 もちろんJDKは必須です。

tomcat+Apache連携

だいぶん前にJK2は開発を中止して、既にリンクもないですね。ちょっと1.2なので一見バージョンがさがっているように見えます。Apache2.2はもうmod_proxy_ajpで連携できるんですね。Apache2.2+Tomcat5.5
ではhttp://tomcat.apache.org/connectors-doc/より、ダウンロードしましょう。apacheは/usr/local/apache2にインストールしているものとしています。環境によって読み替えてください。

wget http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.23/tomcat-connectors-1.2.23-src.tar.gz
cd tomcat-connectors-1.2.23-src/native
./configure --with-apxs=/usr/local/apache2/bin/apxs --with-acpache=/usr/local/apache2/ --with-java-home=/usr/local/j2sdk1.4/
make
make install

httpd.confに

LoadModule jk_module modules/mod_jk.so

を追加しておきましょう。またtomcat-connectors-1.2.23-src/conf/workers.propertiesも /usr/local/apache2/conf/にコピーしておきましょう。このとき tomcat-connectors-1.2.23-src/conf/workers.propertiesはいっぱい書いてあって、よくわからん場合は、workers.properties.minimalをworkers.propertiesに名前を変えて使いましょう。 では連携してみます。たとえば、tomcatのserver.xmlに

<Context path="/hoge" .....

とかしてコンテキストが追加されていて、http://localhost:8080/hogeがちゃんとうごいていれば、(連携する前にはtomat単体で動いていることが前提です) httpd.confに

JkWorkersFile   /usr/local/apache2/conf/workers.properties
JkLogFile       /usr/local/apache2/logs/mod_jk.log
JkMount         /hoge/*  hoge

を追加します。次にworkers.propertiesです。

worker.list=wlb,jkstatus,hoge
worker.hoge.port=8009
worker.hoge.host=localhost
worker.hoge.type=ajp13

worker.listにhogeを追加して、その定義を追加しました。ではつぎはtomcatのserver.xmlです。

<!-- Define an AJP 1.3 Connector on port 8009 -->
<!--
<Connector className="org.apache.ajp.tomcat4.Ajp13Connector"
           port="8009" minProcessors="5" maxProcessors="75"
           acceptCount="10" debug="0"/>
-->

もしくは

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" 
           enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

このような記述を確認します。コメントになっている場合は、とってやりましょう。

<Connector className="org.apache.ajp.tomcat4.Ajp13Connector"
           port="8009" minProcessors="5" maxProcessors="75"
           acceptCount="10" debug="0"/>

ではtomcatを再起動して、

netstat -ltp

で確認します。8009があれば、OKです。では実際にブラウザから確認して表示されるかを確認しましょう。表示されない場合は、

/usr/local/apache2/logs/mod_jk.log

を確認します。
Windowsの場合、 http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.26/mod_jk-1.2.26-httpd-2.0.59.soをダウンロードしました。 C:\Program Files\Apache Group\Apache2\modulesに保存して、httpd.confに追加します。

LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.0.59.so
<IfModule mod_jk.c>
 Include conf/mod_jk.conf
</IfModule>

ではmod_jk.confに

JkWorkersFile   "C:/Program Files/Apache Group/Apache2/conf/workers.properties"
JkLogFile       "C:/Program Files/Apache Group/Apache2/logs/mod_jk.log"
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /hoge/*  hoge

さすがWindows。JkWorkersFile?とかの指定でダブルクォーテイションがないと落ちますね。ディレクトリ名のなかに空白が入っているからでしょう。嫌がらせ以外のなにものでもない。
ではworkers.properties

worker.list=hoge
worker.hoge.port=8009
worker.hoge.host=localhost
worker.hoge.type=ajp13

できたらtomcat,apacheを再起動して、http://localhost/hoge/です。http://localhost/hogeですとつながらないかもしれないので、注意しましょう。これがいやならmod_jk.confに

JkMount /hoge  hoge

を追加しておきます。 virtualhostに追加する場合は、(SSLも含めて)

JkMount /hoge/*  hoge

を追加します。 参考:Apache-Tomcat連携(mok_jk)

ここからは旧のJK2を使う場合です。
http://jakarta.apache.org/site/sourceindex.cgiからJK2 2.0.4 Source Release tar.gzをダウンロードします。 解凍後、jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/に移動して、

./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-tomcat41=/usr/local/tomcat4.1
make

うまくいくとjakarta-tomcat-connectors-jk2-2.0.4-src/jk/build/jk2/apache2にmod_jk2.soができてますので、

cp -p mod_jk2.so  /usr/local/apache2/modules/

でコピーしてやります。 またjakarta-tomcat-connectors-jk2-2.0.4-src/jk/conf/workers2.propertiesも /usr/local/apache2/conf/にコピーしておきましょう。このworkers2.propertiesにtomcatのコンテキスト名がhogeでしたら、

[uri:/hoge/*]

を追加しておきます。コピー後はhttpd.confにmod_jk2.soを追加します。

LoadModule jk2_module modules/mod_jk2.so 

では再起動です。またApacheでVirtualHost?の設定の設定をしている場合は、ApacheVirtualHost?の設定を参考にしてみてください。 ちょっと整理しよう..

参考:
技術的雑談-mod_jkを使ってTomcatとhttpdを連携する
http://www.ryouto.jp/linux/linux_55.html
http://www.ryouto.jp/linux/linux_12.html#POS001

tomcat5.5

tomcatもメジャーバージョンアップし、いったいなにが変わったのでしょうか。

  • JavaのコンパイルにSunのSDKを使わなくてもいいらしい
  • クラスタリング これは5からか server.xmlのCluster要素が追加されている
  • ロードバランス これも5からか workers2.propertiesの[channel.socket:localhost:8009]を別ポートで作ってやる
  • CGI/SSIが利用可能になった これも5からかもしれません。

さてインストールしてみましょう。あとからLinuxやSolarisでも動かすので、exeではなく、jakarta-tomcat-5.5.7.tar.gzをダウンロードしました。JKD1.5が入っているのを確認し、C:\Tomcat5.5に解凍して、

set CATALINA_HOME=C:\Tomcat5.5
set CATALINA_OPTS=-server -Xmx512M -Xms128M
set JAVA_HOME=C:\JDK1.5

と設定後、startup.batで起動です。xmのメモリは調整してください。 あれ?Tomcat Administrationが動かん?

Tomcat's administration web application is no longer installed by default. Download and install the "admin" package to use it.

デフォルトではインストールされないんですね。では、5.5.9 Admin tar.gzもダウンロードして、CATALINA_HOMEにいれておきます。後は、conf/tomcat-users.xmlに

<role rolename="manager"/>
<role rolename="admin"/>
<username="manager" password="manager_pass" roles="manager"/>
<username="admin"   password="admin_pass"   roles="admin"/>

を追加しておきます。コンテキストの設定がかわっていますので、Tomcat TIPSのコンテキストを参照してみてください。

http://muimi.com/j/jakarta/tomcat55/
http://www.roomc.jp/vine/vine_000003.html

tomcat6

いつのまにやら6がでてますね。変更点は

  • Servlet 2.5およびJSP 2.1のサポート
  • J2SE 5.0以上が必須

ほかにもいろいろあるようなのですが、ちょっと入れてみましょう。

wget http://www.meisei-u.ac.jp/mirror/apache/dist/tomcat/tomcat-6/v6.0.10/bin/apache-tomcat-6.0.10.tar.gz
tar xzvf apache-tomcat-6.0.10.tar.gz
mv apache-tomcat-6.0.10 /usr/local/tomcat6

環境変数を確認しておきます。

export JAVA_HOME=/usr/local/jdk1.5
export CATALINA_HOME=/usr/local/tomcat6
export CATALINA_OPTS="-server -Xmx512M -Xms128M"
export PATH=$PATH:$JAVA_HOME/bin

JAVA_HOMEとかは自分の環境に読み替えておいてください。では

/usr/local/tomcat6/bin/startup.sh

で起動です。http://localhost:8080で確認しておきましょう。

/usr/local/tomcat6/bin/shutdown.sh

で停止です。ここまでは5と一緒です。 後は5と同じように、conf/tomcat-users.xmlに

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager"/>
  <user username="tomcat" password="manager" roles="manager"/>
</tomcat-users>

としておきます。

リンク

参考書籍

コメント

  • #comment

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-06-30 (月) 05:02:00 (5799d)