
[Javaのお部屋]
[java.dev.jp]
[developer.jp]
[Tomcat]
Jakarta Tomcat は、Apache のサブプロジェクトでつくられている Servlet / JSP のリファレンス環境である。
こいつを使って、Servlet / JSP のいろいろを試す。
Tomcat 4とApache の連携は、あちこち探しても日本語資料が微量というか・・・まとまってないですねぃ・・・。
というわけで、解読というか、いろいろ試してApache との連携の解読に成功しました。そういえば、PostgreSQLのJDBCドライバとか、繋ぐものが好きかもしれない・・・。
このページのもくじ
必要なもの
Tomcat 5の場合は、ほとんど変わりませんが
3.x は Linux メモでちょこっとメモしていました。もう古いので使うのはやめましょう。
4.x は、同じです。最新版は、2004年、4.1.30 です。古いものは危険です。
バイナリ版をインストールします。
バイナリ版Tomcat は、Standard版とLE版の2つが用意されています。
この違いは、LE版では実行に必要な環境のうち
J2SDK1.4に含まれているXMLパーサを含んでいません。LE版にXMLパーサを組み合わせればJ2SDK1.2以降でも動作します。
その他、JavaMail、Java Activation Framework
(JAF)、Xerces、JNDI、JDBC標準拡張も、LE版には含まれていません。
| 種類 | ファイル名 | 違い |
| Standard版 | tomcat-4.1.?.tar.gz 等 | XMLパーサ、JavaMail、JAF、Xerces、JNDI、JDBC拡張が含まれる。J2SDK1.2以降で動作する。 |
| LE版 | tomcat-4.1.?-LE-jdk14.tar.gz 等 | 軽量版。Tomcat本体以外のものは含まれない。JDK1.2以降1.4未満で動作させるためにはXMLパーサが必要。 |
| src版 | tomcat-4.1.?-src.tar.gz 等 | 元になるソースコード |
ファイル名は、4.1.18からjakarta- の名称がなくなっているようです。
解凍する
# tar zxvf tomcat-4.1.x.tar.gz # mv tomcat-4.1.x /usr/local # cd /usr/local # ln -s tomcat-4.1.x tomcat
ユーザは tomcat なんていうのを作っておくと安全かもしれません。
# adduser tomcat
# chown -R tomcat:tomcat /usr/local/tomcat-4.1.x
環境設定するんかな?
/etc/profile または、ユーザの環境変数に
JAVA_HOME とか、いろいろ設定します。
Tomcat 4系の環境変数は、CATALINA_HOME と CATALINA_BASE があります。
| CATALINA_HOME | Tomcatのバイナリディレクトリ。(省略可) |
| CATALINA_BASE | データ用のディレクトリ。これを変更することで、複数起動が可能になります。 省略すると、CATALINA_HOMEと同じになります。 |
| CATALINA_TMPDIR | 作業用? 省略時は %CATALINA_BASE%/temp でいいのかな? |
CATALINA_HOME以外は実行ユーザで書き込み権限があった方がいいのかもしれません。
あと、PATHにも $CATALINA_HOME/bin を追加しておくといいかもしれません。
# su - tomcat
となって startup.sh をつんつんすると、Tomcat がさくっと起動します。Tomcat 3系より軽そうにメッセージ少ないです。
ディレクトリはどうなってるの?
tomcat をどこへインストールしたのか知りませんが、その中は、こんなふうになっています。
%CATALINA_HOME% |
%CATALINA_BASE% |
%CATALINA_TMPDIR% |
ドキュメントのなかで、CATALINA とか書かれてるのは、Tomcat 4系の開発コードのようです。
webapps の中に、各種Webアプリケーションというものが置かれていたり、作ったりできます。
さらにその中の WEB-INF/ というディレクトリは、設定やラリブラリをいろいろと置けてしまいます。
conf/server.xml の Context をカキカキすることで、webapps 以外へのWEBAPP配置もできます。(4
ではできないとか、誰かが言ってたけど、そなのか?)
まぁとりあえず、動作確認もできたところで、設定ファイルいってみよう
conf/server.xml です。(日本語コメント付き UTF-8)
conf/tomcat-users.xml
| サービス | Port | 初期状態 | 備考 |
|---|---|---|---|
| Server | 8005 | Open | シャットダウン用 |
| WARP | 8008 | Close | mod_webapp用 |
| AJP13 | 8009 | Open | Coyote |
| HTTP/1.1 | 8080 | Open | Coyote |
| Proxied HTTP/1.1 | 8082 | Close | |
| 旧HTTP/1.1 Test | 8083 | Close | catalina |
| HTTP/1.0 | 8084 | Close | catalina |
| SSL HTTP/1.1 | 8443 | Close | Coyote |
tomcat-users.xml は、adminとmanager管理ツールのアクセス制限等につかうもののようです。
role というのがアプリケーション、user がユーザのようです。
Tomcat 4.1.xには admin と manager というツールがついているようですので、これのユーザを追加してみましょう。
Windows版のTomcat は、インストールする時にこのユーザも入力しているかもしれません。
まず、<role rollname="admin"/> と <role
rolename="manager.xml"/> を role のところへ追加します。
<user username="username" password="password"
roles="admin,manager"/> なんてふうに、追加します。
Tomcat が起動されていたら、再起動しましょう。
http://localhost:8080/ の admin とか manager
というところへ追加したアカウントでアクセスできるようになっているはずです。
Last update 2003.9.8
ApacheとTomcat をごにょごにょするには、mod_jk2やmod_webapp というものを使います。この近辺の日本語資料が少ないので悲しいです。
なんか、mod_webapp とか、coyote とか mod_jk2 とかいろいろあるので混乱しがちですが、次のような感じです。
| 名称 | 開発 | Tomcat ver | Protocol | 対応サーバとか |
| mod_jserv | 終了 | 3.x |
AJP11,Ajp12 | Apache 1.3.x |
| mod_jk | 終了 | All | AJP12,AJP13 | Apache 1.3.x |
| mod_jk2 | 現 | 3.x 4.x 5.x | AJP12,AJP13 | Apache 1.3/2.0 |
| mod_webapp | 4.x | WARP | Apache 1.3.x ? (Windows非サポート) |
|
| coyote | 現 | 3.3以降 | HTTP/1.1,AJP13,JNI | Tomcat側の新実装 |
| ajp | AJP12,AJP13 | Tomcat側の旧実装? |
Tomcat 4.1.x には最初から coyote が入ってたので、次はApache 側の設定をしてみましょう。
mod_webapp とmod_jk2がありますが、mod_jk(古いもの)とmod_webapp を比べた場合にはmod_webappの方が素直な設定のようなので、私的にはWebモジュール単位でApacheと連携できるmod_webappをおすすめします。
mod_jk2は、jspだけをマッピングしたり、サーブレットのマッピングとか面倒ではないのでしょうかね・・・? Webモジュール内の処理は全部Tomcat側で処理させた方がいいので、おすすめできません。CGIやPHPなどを使う場合は、モジュールの外で分けて使うようにしましょう。