玄箱PRO-Tomcat

私の玄箱PROはDebian(etch)化しているのですが、色々試してうまく行ったtomcat4を導入する手順を紹介します。
(2007.12.25追記)
玄箱PRO-Javaにも追記したSunのARM/Linux版のJREを導入したので、JREのみで動作可能なTomcat5.5に移行しました。
いまさらTomcat4を使うより、Tomcat5.5の導入をお勧めします。当方かなり快適に安定稼動しています。

Tomcat5.5を導入

Apacheのサイト(http://tomcat.apache.org/ )からTomcat5.5をダウンロードします。
今回はSun-JRE1.4.2を使用するのでCoreとJDK 1.4 Compatability Packageが必要です。
Windowsで入手したパッケージを/optにFTPで転送しました。
解凍して、startup.shとshutdown.shにJAVA_HOMEを設定するだけで動作するようになります。

KUROBOX-PRO:~# cd /opt
KUROBOX-PRO:/opt# tar zxvf apache-tomcat-5.5.25.tar.gz
KUROBOX-PRO:/opt# tar zxvf apache-tomcat-5.5.25-compat.tar.gz
KUROBOX-PRO:/opt# cd /apache-tomcat-5.5.25/bin
KUROBOX-PRO:/opt/apache-tomcat-5.5.25/bin# vi startup.sh
:
# -----------------------------------------------
export JAVA_HOME=/opt/j2re1.4.2
# Better OS/400 detection: see Bugzilla 31132
:
KUROBOX-PRO:/opt/apache-tomcat-5.5.25/bin# vi shutdown.sh
:
# -----------------------------------------------
export JAVA_HOME=/opt/j2re1.4.2
# resolve links - $0 may be a softlink
:

Apacheとの連携の設定は特に行わなくてもすぐに利用可能でした。
当サイトで紹介している方法でセットアップしていれば私と同じ状況になるかと思います。


Tomcat4を導入


※先に玄箱PRO-JavaでSableVMが導入されていることが前提です。
※関連パッケージ26個で23.5MB使用します

(tomcat5の方が良いのかな?バージョンが低い方が軽いという観点でtomcat4を選択してます。tomcat3はServletAPIのバージョンが私の移行元のアプリケーションにあわないので必然的にServletAPI 2.3 JSP 1.2のtomcat4になりました。)

問題はetchでapt-cache searchしてもtomcat4が見つからないことです。sargeにはあったので/etc/apt/sources.listを一時的に編集してtomcat4を導入します。
KUROBOX-PRO:~# vi /etc/apt/sources.list
deb http://ftp.jp.debian.org/debian etch main contrib non-free
deb-src http://ftp.jp.debian.org/debian etch main contrib non-free
deb http://ftp.jp.debian.org/debian sarge main contrib non-free

deb http://security.debian.org etch/updates main contrib non-free
deb-src http://security.debian.org etch/updates main contrib non-free
deb http://security.debian.org sarge/updates main contrib non-free

KUROBOX-PRO:~# apt-get update

KUROBOX-PRO:~# apt-cache search tomcat4
tomcat4 - Java Servlet 2.3 engine with JSP 1.2 support
libtomcat4-java - Java Servlet engine -- core libraries
tomcat4-admin - Java Servlet engine -- admin web interfaces
tomcat4-webapps - Java Servlet engine -- documentation and example web applicat
KUROBOX-PRO:~# apt-cache depends tomcat4
tomcat4
|Depends: <j2sdk1.4>
|Depends: <j2sdk1.3>
|Depends: kaffe
 Depends: <java-virtual-machine>
   gij
   gij-4.1
   jamvm
   sablevm
   sun-java5-jre
|Depends: <j2sdk1.4>
|Depends: <j2sdk1.3>
|Depends: kaffe
 Depends: <java-compiler>
   gcj
   gcj-4.1
   jikes-classpath
   jikes-gij
   jikes-kaffe
   jikes-sablevm
   jikes-sun
 Depends: libtomcat4-java
 Depends: libcommons-digester-java
 Depends: libcommons-collections-java
 Depends: libcommons-beanutils-java
 Depends: libcommons-logging-java
 Depends: adduser
|Depends: apache-utils
 Depends: <apache2-common>
Suggests: libapache-mod-jk
Suggests: tomcat4-webapps
Suggests: tomcat4-admin
Suggests: ant
KUROBOX-PRO:~# apt-get install tomcat4 tomcat4-admin tomcat4-webapps
:
:
ここまで終わったらsarge用のパスは不要なのでコメント化しておきます。(あとあと混乱のもとになるので)
KUROBOX-PRO:~# vi /etc/apt/sources.list
deb http://ftp.jp.debian.org/debian etch main contrib non-free
deb-src http://ftp.jp.debian.org/debian etch main contrib non-free
#deb http://ftp.jp.debian.org/debian sarge main contrib non-free

deb http://security.debian.org etch/updates main contrib non-free
deb-src http://security.debian.org etch/updates main contrib non-free
#deb http://security.debian.org sarge/updates main contrib non-free

次にSableVMでTomcat4が起動できるように/usr/share/tomcat4/bin/setclasspath.shを編集します。
編集箇所は1箇所です。「! -x "$JAVA_HOME"/bin/jdb -o」を削除します。
KUROBOX-PRO:~# vi /usr/share/tomcat4/bin/setclasspath.sh
if [ ! -x "$JAVA_HOME"/bin/java -o ! -x "$JAVA_HOME"/bin/jdb -o ! -x 
"$JAVA_HOME"/bin/javac ]; then
↓
if [ ! -x "$JAVA_HOME"/bin/java -o ! -x "$JAVA_HOME"/bin/javac ]; then
さらにSableVMでTomcat4が起動できるように/etc/default/tomcat4を編集します。
設定する変数と説明を示します。viで編集してください。(もちろん説明部分は不要です)
KUROBOX-PRO:~# vi /etc/default/tomcat4
■1箇所目:free-java-sdkを使用する
JAVA_HOME=/usr/lib/fjsdk
■2箇所目:SableVMに-Xmx128Mの引数はないのでSableVM用の引数にしてここでは64Mに設定
CATALINA_OPTS="-Djava.awt.headless=true -Dsablevm.heap.size.max=64000000"
■3箇所目:free-java-sdkではcom.sun.tools.javac.Main(tools.jar)が無いのでjikesを指定
JSP_COMPILER=jikes
■4箇所目:SecurityManagerを有効にするとうまく動かなかったため、暫定でnoに設定
TOMCAT4_SECURITY=no
最後にJSPコンパイルをjikesで行うように/var/lib/tomcat4/conf/web.xmlを編集します。
JspServletのinit-paramにcompilerを追加して値をjikesにします。
KUROBOX-PRO:~# vi /var/lib/tomcat4/conf/web.xml
   <servlet>
       <servlet-name>jsp</servlet-name>
       <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
       <init-param>
           <param-name>logVerbosityLevel</param-name>
           <param-value>WARNING</param-value>
       </init-param>
       <init-param>
           <param-name>compiler</param-name>
           <param-value>jikes</param-value>
       </init-param>
       <init-param>
           <param-name>fork</param-name>
           <param-value>false</param-value>
       </init-param>
       <load-on-startup>3</load-on-startup>
   </servlet>
稼動確認を行います。暫くしてからポートが開いたかを確認します。
KUROBOX-PRO:~# /etc/init.d/tomcat4 start
Starting Tomcat 4.1 servlet engine using Java from /usr/lib/fjsdk: tomcat4.
KUROBOX-PRO:~# netstat -a | grep 8180
tcp        0      0 *:8180                  *:*                     LISTEN
ログは/var/log/tomcat4に出力されています。
KUROBOX-PRO:~# ls -l /var/log/tomcat4
prwx------ 1 tomcat4 root        0 May  2 12:22 catalina.out
-rw-r--r-- 1 tomcat4 nogroup 32276 May  2 12:22 catalina_2007-05-02.log
-rw-r--r-- 1 tomcat4 nogroup 20620 May  2 12:22 localhost_2007-05-02.log
wgetで確認します。
KUROBOX-PRO:~# wget http://localhost:8180/
--12:32:57--  http://localhost:8180/
          => `index.html'
Resolving localhost... 127.0.0.1
Connecting to localhost|127.0.0.1|:8180... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: http://localhost:8180/index.jsp [following]
--12:32:57--  http://localhost:8180/index.jsp
          => `index.jsp'
Reusing existing connection to localhost:8180.
HTTP request sent, awaiting response... 200 OK
Length: 8,083 (7.9K) [text/html]

100%[==============================================>] 8,083         --.--K/s

12:32:57 (31.85 MB/s) - `index.jsp' saved [8083/8083]

関連パッケージ

私はtomcat4のみの導入にしました。managerもadminも使うことがないので・・・
KUROBOX-PRO:~# apt-get install tomcat4
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
  apache-utils apache2-utils libant1.6-java libapr1 libaprutil1 libbcel-java
  libcommons-beanutils-java libcommons-collections-java libcommons-collections3-java
  libcommons-dbcp-java libcommons-digester-java libcommons-fileupload-java
  libcommons-logging-java libcommons-modeler-java libcommons-pool-java libjaxp1.3-java
  liblog4j1.2-java libmx4j-java libpcre3 libpq4 libregexp-java libservlet2.3-java
  libsqlite3-0 libtomcat4-java libxerces2-java
Suggested packages:
  junit ant libbcel-java-doc libcommons-beanutils-java-doc
  libcommons-collections-java-doc libcommons-collections3-java-doc liblogkit-java
  libavalon-framework-java classpath-doc libgnumail-java libservlet2.4-java jython
  libxerces2-java-doc libapache-mod-jk tomcat4-webapps tomcat4-admin
The following NEW packages will be installed:
  apache-utils apache2-utils libant1.6-java libapr1 libaprutil1 libbcel-java
  libcommons-beanutils-java libcommons-collections-java libcommons-collections3-java
  libcommons-dbcp-java libcommons-digester-java libcommons-fileupload-java
  libcommons-logging-java libcommons-modeler-java libcommons-pool-java libjaxp1.3-java
  liblog4j1.2-java libmx4j-java libpcre3 libpq4 libregexp-java libservlet2.3-java
  libsqlite3-0 libtomcat4-java libxerces2-java tomcat4
0 upgraded, 26 newly installed, 0 to remove and 15 not upgraded.
Need to get 9692kB of archives.
After unpacking 23.5MB of additional disk space will be used.
Do you want to continue [Y/n]?

tomcat4-adminやtomcat4-webappsを入れないときはserver.xmlを編集する必要があります。
KUROBOX-PRO:~# vi /etc/tomcat4/server.xml
         <!-- Context path="/tomcat-docs" docBase="tomcat-docs" debug="0">
            <Resources className="org.apache.naming.resources.FileDirContext"
                       allowLinking="true" />
         </Context -->
その他不要なGlobalNamingResourcesやRealmなどをコメントしています。(ここでは割愛)
また、tomcat4-adminやtomcat4-webappsを入れないときの稼動確認方法はこちら
KUROBOX-PRO:~# wget http://localhost:8180/ -O /dev/null
--11:02:02--  http://localhost:8180/
           => `/dev/null'
Resolving localhost... 127.0.0.1
Connecting to localhost|127.0.0.1|:8180... connected.
HTTP request sent, awaiting response... 200 OK
Length: 878 [text/html]

100%[==============================================>] 878           --.--K/s

11:02:02 (8.72 MB/s) - `/dev/null' saved [878/878]


最終更新日:2007-12-25
最終更新:2007年12月25日 13:14