#freeze
*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://journal.mycom.co.jp/news/2007/04/09/034/index.html]]

#contents

** インストール
ではまず、ダウンロードします。
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>http://www.atmarkit.co.jp/fjava/rensai/j2eeprfm04/j2eeprfm04_2.html]]の記事が参考になりますので、参照してみてください。
また4系の場合、[[TomcatをWindowsサービスから起動するときのJavaランタイムオプションの設定方法>http://staff.aist.go.jp/nakamura-akihito/research/memo/tomcat/tomcat-memo.html]]も参考にしましょう。
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://syo.cocolog-nifty.com/freely/2006/11/apache22tomcat5.html]]~
では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)>http://www.develop-memo.com/server/apache/modjk.html]]

ここからは旧の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の設定の設定をしている場合は、[[Apache]]のVirtualHostの設定を参考にしてみてください。
ちょっと整理しよう..

参考:~
[[技術的雑談-mod_jkを使ってTomcatとhttpdを連携する>http://www.himajin2001.com/wiki.cgi?page=%B5%BB%BD%D1%C5%AA%BB%A8%C3%CC-mod_jk%A4%F2%BB%C8%A4%C3%A4%C6Tomcat%A4%C8httpd%A4%F2%CF%A2%B7%C8%A4%B9%A4%EB]]~
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>
としておきます。
** リンク
-[[Tomcat TIPS]]

** 参考書籍
-[[Jakarta Tomcatエキスパートガイド>http://www.amazon.co.jp/exec/obidos/ASIN/479732287X/worried-22]]

** コメント
-#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS