#contents

*入手先 [#k3611c3b]

-現行バージョン

http://tomcat.apache.org/

-過去バージョン

http://archive.apache.org/dist/tomcat/

*バージョンごとの特徴 [#ua8e2fed]

**V4.0系 [#abef9518]

このころになってから使われるサイトが多くなったんじゃないだろうか?今でもエラー画面とかでバージョン情報が丸見えになっているサイトがあるし(爆)

**V5.0系 [#idd7f15f]

これは初めて自分が商用サイトで使ったTomcat。

**V5.5系 [#ufe6ac24]

J2SE5.0向けで1.4.x以下はパッチを当てる必要があった。

**V6.0系 [#jd001ea5]

完全にJ2SE5.0以上

*インストール [#cb07fbd9]

-Windows版はインストーラータイプだと起動・停止ができるけど細かい調整ができない(複数入れた時どうなるとか)のでアーカイブ版をお勧めする。アーカイブ版であれば複数のTomcatをディレクトリかえるだけで並存できる。

-アーカイブ版は解凍するだけ、UNIXの場合でZIPアーカイブを解答した場合は、catalina.shに実行権限をつけることを忘れないように!!
-JAVA_HOMEの設定は必要。ないと以下のメッセージで怒られる

Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program


*最小TOMCAT作成 [#n01c98da]

-メモリと起動時間節約のため最初から存在するコンテキストを消します!

+server.xmlを削除してserver-minimal.xmlをserver.xmlにリネーム
+$CATALINA_HOME/conf/Catalina/localhost/にあるxmlファイルを削除
+$CATALINA_HOME/webapps以下にあるフォルダをROOTだけ残して(動作確認用)削除

*運用TIPS [#n0ec7718]

**ログローテーション [#q83d2d00]
http://www.13hz.jp/2004/05/tomcatcatalinao.html

 catalina.shのcatalina.outの部分を編集する
 touch している部分は削除

 >> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
 を以下のように置き換える
 | /usr/sbin/rotatelogs "$CATALINA_BASE"/logs/catalina.out-%Y%m%d 86400 &

**ディレクトリリストの禁止 [#vaa249c8]

-これを放置しておくとと設定が甘いと思われ攻撃対象にされるかも?

 web.xmlを変更
 <init-param>
     <param-name>listings</param-name>
     <param-value>false</param-value>
 </init-param>


**コンテキスト設定xml置き場 [#y8e2c96c]
 V4以前 conf/webapps
 V5以降 conf/catalina/localhost

 WARにContext情報を含める META-INF/context.xml

**[[SSL対応:http://www.itmedia.co.jp/enterprise/articles/0407/01/news018.html]] [#f2d61949]
 server.xmlの8443とあるあたりのコメント除去
 以下のコマンドを実行する。パスワードはchangeitとしておくとデフォルトのままでよい
 keytool -genkey -alias tomcat
 ユーザーのホームディレクトリに.keystoreができるのでそれをtomcatが読みに行く

*管理ツールの利用 [#f254cd8d]

TOMCATにはブラウザから操作できる管理ツールがある。昔は一緒に入っていたのだが、最近は別々のアーカイブにされている。以下に利用手順をしめす。

**admintoolの配置 [#uc939428]

**admintoolの利用 [#wd37eaed]

 conf/tomcat-users.xmlに以下の行を追加
 <user username="hoge" password="hoge" roles="admin"/>

**V6.0のTomcatManagerの利用 [#bce6b3cd]


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


*Apacheとの連携 [#t5dbe648]

-JKが開発継続で、JK2は非推奨になりました!(2004/03)
-Apache2.2ではajpプロトコルによる連携がサポートされている。

**JKコンパイル [#k94fc8a4]

 cd jk/native
 ./configure --with-apxs=/usr/local/apache2/bin/apxs
 make
 cd apache-2.0
 
-fails sanity checkがでる場合はapt-get install gcc-c++をする
-apxsはapache-develパッケージをいれないと入らない。ソースコンパイルした場合はたいてい入る

***Vine3.x系でApache2でコンパイル [#fbddfcb9]

「/home/arege/rpm/BUILD/httpd-2.0.44/srclib/apr/libtool: /home/arege/rpm/BUILD/httpd-2.0.44/srclib/apr/libtool: そのようなファイルやディレクトリはありません」が出るので以下のようにしてLIBTOOLの場所を指定する。

 export LIBTOOL=/etc/apache2/build/libtool
 ./configure --with-apxs=/usr/bin/apxs
 make LIBTOOL=/etc/apache2/build/libtool

**Apahceの設定 [#j4824337]

***httpd.confの編集 [#ocddfa2c]

 LoadModule jk_module modules/mod_jk.so
 JkWorkersFile conf/workers.properties
 JkLogFile     logs/mod_jk.log
 JkLogLevel    error
 #TOMCATのコンテキストをここに書く
 JkMount /jsp-examples/* ajp13

***workers.propertiesの編集 [#d8453e1d]

 apacheのhttpd.confと同じディレクトリへ配置する

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

***workers.propertiesの内容をhttpd.confにかく [#b7190958]

jkのバージョンが1.2.7以降 

 # Minimal jk configuration
 JkWorkerProperty worker.list=ajp13
 JkWorkerProperty worker.ajp13.type=ajp13
 JkWorkerProperty worker.ajp13.host=localhost
 JkWorkerProperty worker.ajp13.port=8009   


**JK2(deprecated) [#j71ac481]

-非推奨となりました!

 tomcat4
 # ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-tomcat4=/usr/java/tomcat/
 # make
 出来上がったバイナリをapacheのmoduleディレクトリにコピー
 LoadModule jk2_module   modules/mod_jk2.so
 
 有効なworkers2.properties
 [status:]
 [uri:/jkstatus/*]
 group=status:
 [shm:]
 disabled=1
 [channel.socket:localhost:8009]
 info=Ajp13 fowarding over socket
 debug=0
 tomcatId=localhost:8009
 [ajp13:]
 [uri:/examples/*]
 [uri:/tool/*]
 tomcat5
 TOMCATのworkディレクトリを666にしておく、さもないと500エラー
 それでも50%の確立ででる!!どーしてくれようか!

*複数のApache+Tomcat [#v75e3cc3]

[[参考URL:http://www63.tok2.com/home2/jd4/Tomcat5Apache400LoadBalance.html]]

-server.xmlにApache から見てそれぞれを識別するためのIDをjvmRoute="tomcat_live"で(任意)に設定

-workers.propertiesを以下のように合わせる

 worker.list=tomcat_live
 worker.tomcat_live.port=8009
 worker.tomcat_live.host=127.0.0.1
 worker.tomcat_live.type=ajp13

-httpd.confで上記のworker.listの定義名に対して、関連付ける

 JkMount /*.jsp tomcat_live
 JkMount /web/* tomcat_live
 JkMount /live/* tomcat_live
 JkMount /preview/* tomcat_live

*JNDIの利用設定 [#vd5d8ca4]

5.0から依存ライブラリがバンドルされなくなった。DBCP,POOLを別途入れる必要あり。

*トラブルシューティング [#ie49095f]

**ログの日本語が文字化けする [#p7adfb8d]

LANGの設定が適切でないのが原因。最近のLinuxディストリビューションならUTF-8だろうか?

 export LANG=ja_JP.UTF-8



**HTTP Status 404 [#af03c3e3]

The requested resource (xxxxx) is not available.の英文の訳どおり、Tomcat管理下にある指定されたリソース(JSPファイルに限らずディレクトリ等も含む)が見つからないということ。注意すべきはなんらかのエラーでコンテキストが利用不可能になった場合はそのコンテキスト以下が404になること。ファイルは存在しているように見えても該当コンテキストのエラーの原因を除いてTomcatを再起動するまでは駄目。



#counter

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