Kei's M.I.Lab


SuSE Linux10でTomcat5.5


SuSE10ではjavaの初期設定がやや面倒になっている。

1つは標準インストールに含まれておらずあとでYaSTにソースを追加しないといけないこと、もう一つはJavaのファイルがFHSに準拠してシステムに 散在することである。

SuSEに収録されているTomcatは5.0であり、5.5は自前でセットアップしなければならない。

既存の9.3からできるだけ設定を流用してみる。

■J2SE5.0 SDKのインストール

▼SuSE10へのJDKのインストール

標準のインストーラにはJavaがないので、Readmeに従ってインストールソースを追加する。

>http://en.opensuse.org/JA-Java

		プロトコル:FTPサーバー:ftp.novell.co.jp
		ディレクトリ:pub/suse/opensuse/distribution/SL-10.0-OSS/inst-source-java/
		
(pubの前にスラッシュが付かないように注意。)

上記操作でインストールできるパッケージがふえるので、1.5系を全部いれてみる

●JDKの環境変数

市販のTomcat本はみんなJavaの環境変数をユーザーの.bashrcとか.bash_profileに入れろと書いているが、私はできればサーバー単位で設定したい。そしてSuSEもそういう設定をサポートしている。

SuSEでは環境変数スクリプトははソフト毎に分割され、profile.d に格納されている。
Javaについては

/etc/profile.d/alljava.sh

というSuSE製のスクリプトが用意されている。JRE1.4,5,x64等の差を吸収しているらしい?,

しかしこのファイルはjavaのRPMではなく
aaa_base-10.0-28
に収録されている(反則だ!)

スクリプト内でバージョンの違いを判断したりしているが、最終的に下記の変数が作られる。

JAVA_BINDIR=/usr/lib/jvm/java/bin
JAVA_HOME=/usr/lib/jvm/java
JAVA_ROOT=/usr/lib/jvm/java
JDK_HOME=/usr/lib/jvm/java
JRE_HOME=/usr/lib/jvm/java/jre
SDK_HOME=/usr/lib/jvm/java

SuSEはjavaのパッケージを/usr/bin等にfhsスタイルでインストールするため市販の本と全然違うことになる。とりあえず$JAVA_HOMEさえ得られればOKとしよう。

▼ふつうのLinuxへのJDKのインストール

●ダウンロード

http://java.sun.com/j2se/1.5.0/ja/install-linux.html http://java.sun.com/j2se/1.5.0/ja/install-docs.html

▼展開
JavaインストーラはRPM版も自己解凍版も一度実行ファイルにする必要がある。

chmod +x jdk-1_5_0_-linux-i586.bin ./jdk-1_5_0_-linux-i586.bin

これでRPMまたは解凍されたディレクトリが出現する。

RPMの場合は下記ディレクトリに全部入る。

/usr/java/jdk1.5.0_06/

実は環境変数などは全く世話してくれないので注意。RPMである意味はあまりなく、しいて言えばインストール先ディレクトリが決まっていることぐらいだろうか?

「/usr/java/jdk1.5」あたりのシンボリックリンクを作ってバージョン番号の変動に対応する。

●JDKの環境変数

$java_home をどこかの環境設定ファイルに書く。

▼システム全体にセットする場合

/etc/profile.d/java.sh

SuSEを真似してこのようなスクリプトファイルを作って、

export $java_home="/usr/java/jdk1.5"

とか書く?

▼ユーザー毎の場合

/home/kei/.bash_profile or .bashrc

に上記の行を書く


ここから先はSuSE以外にはあまり役に立ちません

■JKコネクタのインストール

JKコネクタはTomcatとApacheの連動のために必要になる。 インストールすると、Apacheに対する特定ディレクトリ、ファイル名へのアクセスがTomcatに丸投げされるようになり、80ポートだけでサービスを提供できる。
Tomcatを8080ポートでそのまま使う場合は必要ない。

現在発行されている解説書はほとんどが新バージョンのJK2を対象にしているが、実はJK2は「関心の低さにより」開発中止になってしまっている。
15 November 2004 - JK2 is officially unsupported!に発表がある。書籍が現状に追いつくのはいつのことだろうか?

▼mod_jk-ap20(4.1.30)

●SuSEの場合

SuSE10収録はJK1.2.5相当らしい。下記ファイルが収録されている。

/usr/lib/apache2/mod_jk.so
usr/share/doc/packages/mod_jk-ap20/jk.conf

ドキュメントディレクトリにサンプルのjk.confが収録されているのでこれを

/etc/apache2/conf.d

にいれる。

# cp /usr/share/doc/packages/mod_jk-ap20/jk.conf .

●自分でビルド

最新はJK1.2.15らしい

http://tomcat.apache.org/download-connectors.cgi

事前にC/C++開発ツール一式とApache*-develパッケージが必要。

完成品を/usr/lib... に入れるのは同じ。

jk.confに当たる部分はhttpd.confに直接書いても、conf.dにいれてもいい。


■Tomcat5.5のインストール

> http://tomcat.apache.org/

http://tomcat.apache.org/download-55.cgi#5.5.16

http://tomcat.apache.org/tomcat-5.5-doc/index.html

▼アーカイブを展開

(SuSEのデフォルトではunzipが入っていないので追加でインストールしておく。)

次の例では/opt にインストールしている。

RPMだと/usr/share/tomcat5 にインストールされるが人力インストールの場合は「usr/local/share/tomcat5.5」か?

tar -xzf apache-tomcat-5.5.16.tar.gz
unzip apache-tomcat-5.5.16-admin.zip
cp apache-tomcat-5.5xxxx /opt
cd /opt
ln -s apache-xxx tomcat55

●実行ユーザー

SuSEの init.d スクリプトは tomcat:tomcat を指定しているのでそれに合わせて作る。

ホームディレクトリは先に展開した場所を指定する。(SuSE9.3のものを参考に)

lightning9b:/etc # groupadd tomcat
lightning9b:/etc # useradd -c "Tomcat - JSP/Servelet Engine" -d /opt/tomcat55 -s /bin/bash -g tomcat tomcat

●設定

SuSEの場合以下の3つのファイルが動作に必須となっている。

▼/etc/rc.profile/alljava.sh

デフォルトでOK

▼/etc/sysconfig/j2ee

j2eeがTomcatの設定の主体であるが、RPMでTomcat5を入れないとこのファイルは得られない。 (私はSuSE9.3からコピーした... sample 拡張子は削ること

インストール箇所(/usr/share/tomcat5)を指定しているのでこれを修正する。

▼/etc/init.d/tomcat5

・これもSuSE9.3からコピー。中身はそのまま。(sample)

▼$CATALINA_HOME/logs/

/var/log/tomcat55 ディレクトリを作成し、元のログディレクトリは←へのシンボリックリンクにする。

■自動起動

Windowsならスタートアップフォルダとか簡単に設定できるが、Linux,特にSuSEはどこにあるのかわかりにくい。
SuSEの場合は/etc/rc.d.READMEに「LSBにより適合するために/etc/rc.dは/etc/sysconfigに移されました」というメモがある。
ここも、大半の書籍がrc.localとかにtomcatのstart.shを追加せよと書いているが、これではあとで運用管理が面倒なので、/etc/init.d/にちゃんとデーモンとしてスクリプトを作成した方がいい。

▼Tomcat5の rcスクリプトを流用

先ほどの/etc/init.d/tomcat5 を作成しておくと、自動起動して、単体の起動や終了も楽になる。

/etc/init.d/tomcat55 -> /usr/sbin/rctomcat55
としてシンボリックリンクを作成しておくと、よりSuSEらしくなる。この場合の起動コマンドは以下の通り。
>rctomcat55 start

▼手動起動

#cd /usr/share/tomcat5.5/bin
#./startup.sh

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

以上で動く、はず。

Kei's M.I.Lab