Jakartaプロジェクトのサブプロジェクトとして開発されているオープンソースのソフトウェアで、Javaサーブレット・JSPを処理するアプリケーションサーバです。
Tomcatは単独でWebサーバとして動作できるそうだがApacheのプラグインと動作できるようになっており、実際にはプラグインとしての利用が主流となっているそうです。
java-1.4.2-gcj-compatのアンインストール # yum -y remove java-1.4.2-gcj-compat |
ApacheとTomcatの連携モジュール作成時に必要な「apxs」をインストールする。
httpd-develのインストール # yum -y install httpd-devel |
tomcat5の取得
# wget http://archive.apache.org/dist/jakarta/tomcat-5/v5.5.12/bin/apache-tomcat-5.5.12.tar.gz
--05:09:56-- http://archive.apache.org/dist/jakarta/tomcat-5/v5.5.12/bin/apache-tomcat-5.5.12.tar.gz
=> `apache-tomcat-5.5.12.tar.gz'
archive.apache.org をDNSに問いあわせています... 192.87.106.226
archive.apache.org|192.87.106.226|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 5,924,214 (5.6M) [application/x-tar]
100%[====================================>] 5,924,214 115.04K/s ETA 00:00
05:11:27 (64.00 KB/s) - `apache-tomcat-5.5.12.tar.gz' を保存しました [5924214/5924214]
取得したtomcat5の展開
# tar zxvf apache-tomcat-5.5.12.tar.gz
apache-tomcat-5.5.12/bin/catalina.sh
apache-tomcat-5.5.12/bin/digest.sh
apache-tomcat-5.5.12/bin/setclasspath.sh
apache-tomcat-5.5.12/bin/shutdown.sh
apache-tomcat-5.5.12/bin/startup.sh
:
:
:
apache-tomcat-5.5.12/webapps/tomcat-docs/windows-service-howto.html
apache-tomcat-5.5.12/webapps/webdav/WEB-INF/web.xml
apache-tomcat-5.5.12/webapps/webdav/index.html
apache-tomcat-5.5.12/webapps/webdav/tomcat-power.gif
apache-tomcat-5.5.12/webapps/webdav/tomcat.gif
展開されたモジュールを移動
# mv apache-tomcat-5.5.12/ /usr/local/
今後のTomcat5バージョンアップを考慮しシンボリックリンクを貼る
# ln -s /usr/local/apache-tomcat-5.5.12/ /usr/local/tomcat
シンボリックリンクの確認
# ll /usr/local/
lrwxrwxrwx 1 root root 32 7月 25 05:42 tomcat -> /usr/local/apache-tomcat-5.5.12/
ApacheとTomcatの連携モジュール「mod_jk2.so」を作成する為の「jakarta-tomcat-connectors-jk2」をダウンロード
# wget http://archive.apache.org/dist/jakarta/tomcat-connectors/jk2/jakarta-tomcat-connectors-jk2-src-current.tar.gz
--05:18:29-- http://archive.apache.org/dist/jakarta/tomcat-connectors/jk2/jakarta-tomcat-connectors-jk2-src-current.tar.gz
=> `jakarta-tomcat-connectors-jk2-src-current.tar.gz'
archive.apache.org をDNSに問いあわせています... 192.87.106.226
archive.apache.org|192.87.106.226|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 907,088 (886K) [application/x-tar]
100%[====================================>] 907,088 81.71K/s ETA 00:00
05:18:47 (50.91 KB/s) - `jakarta-tomcat-connectors-jk2-src-current.tar.gz' を保存しました [907088/907088]
ダウンロードした「jakarta-tomcat-connectors-jk2」を展開
# tar zxvf jakarta-tomcat-connectors-jk2-src-current.tar.gz
jakarta-tomcat-connectors-jk2-2.0.4-src/
jakarta-tomcat-connectors-jk2-2.0.4-src/xxx
jakarta-tomcat-connectors-jk2-2.0.4-src/README.txt
jakarta-tomcat-connectors-jk2-2.0.4-src/KEYS
jakarta-tomcat-connectors-jk2-2.0.4-src/LICENSE
:
:
:
jakarta-tomcat-connectors-jk2-2.0.4-src/jk/xdocs/menu.idx
jakarta-tomcat-connectors-jk2-2.0.4-src/lib/
jakarta-tomcat-connectors-jk2-2.0.4-src/scandoc/
jakarta-tomcat-connectors-jk2-2.0.4-src/scandoc/scandoc.pl
jakarta-tomcat-connectors-jk2-2.0.4-src/scandoc/template.pl
ApacheとTomcatの連携モジュール「mod_jk2.so」の生成
# cd jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/
# ./configure --with-apxs2=/usr/sbin/apxs
checking build system type... i686-redhat-linux-gnu
checking host system type... i686-redhat-linux-gnu
checking target system type... i686-redhat-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
:
:
:
config.status: creating server/apache2/Makefile
config.status: creating server/apache2/Makefile.apxs
config.status: creating ../build.properties
config.status: creating scripts/build/unix/dummy
config.status: executing depfiles commands
# make
list=' server/apache2'; \
for i in $list; do \
echo "Making $target in $i"; \
if test "$i" != "."; then \
(cd $i && make) || exit 1; \
:
:
:
/usr/lib/apr-1/build/libtool --silent --mode=install /bin/cp ../../../build/jk2/apache2/mod_jk2.la
`pwd`/../../../build/jk2/apache2//usr/lib/httpd/modules
libtool: install: warning: remember to run `libtool --finish /usr/lib/httpd/modules'
/bin/cp ../../../build/jk2/apache2//usr/lib/httpd/modules/mod_jk2.so ../../../build/jk2/apache2/mod_jk2.so
make[1]: Leaving directory `/root/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/server/apache2'
生成された「mod_jk2.so」の位置へ移動
# cd ../build/jk2/apache2/
「mod_jk2.so」のインストール
# apxs -n jk2 -i mod_jk2.so
/usr/lib/httpd/build/instdso.sh SH_LIBTOOL='/usr/lib/apr-1/build/libtool' mod_jk2.so /usr/lib/httpd/modules
/usr/lib/apr-1/build/libtool --mode=install cp mod_jk2.so /usr/lib/httpd/modules/
cp mod_jk2.so /usr/lib/httpd/modules/mod_jk2.so
Warning! dlname not found in /usr/lib/httpd/modules/mod_jk2.so.
Assuming installing a .so rather than a libtool archive.
chmod 755 /usr/lib/httpd/modules/mod_jk2.so
「workers2.properties」のコピー
# cd ../../../conf/
# cp -p workers2.properties /etc/httpd/conf/
「mod_jk2.so」の組み込み
# vi /etc/httpd/conf/httpd.conf
LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so
以下を追加
LoadModule jk2_module modules/mod_jk2.so
|
環境ファイルの編集
# vi /etc/profile
以下を追加します。
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export TOMCAT_HOME=/usr/local/tomcat
export CATALINA_HOME=/usr/local/tomcat
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/common/lib
編集した環境ファイルを反映させる
# source /etc/profile
サーブレットクラスをJRE(Java実行環境)のクラスライブラリへコピー
# cp $CATALINA_HOME/common/lib/servlet-api.jar $JAVA_HOME/jre/lib/ext/
設定ファイルの編集
# vi /usr/local/tomcat/conf/web.xml
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
ディレクトリの内容が表示されてしまうのを防ぐ
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
サンプル「servlet」と「jsp」を認識させる
# vi /etc/httpd/conf/workers2.properties
[uri:/examples/servlet/HelloW]
info=Example with debug enabled.
debug=10
以下を追加
[uri:/servlets-examples/*]
[uri:/jsp-examples/*]
デフォルトではポート「8080」でアクセスの為(http://サーバアドレス:8080/)、無効にする
# vi /usr/local/tomcat/conf/server.xml
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
以下を追加(「<!--」「-->」を挿入しコメント化)
<!--
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
-->
<!-- Note : To disable connection timeouts, set connectionTimeout value
to 0 -->
|
tomcatを起動する # /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java apache(httpd)を再起動する # /etc/rc.d/init.d/httpd restart httpdを停止中: [ OK ] httpd を起動中: [ OK ] 備考: tomcatの停止方法 # /usr/local/tomcat/bin/shutdown.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java |
このままでは、起動・停止スクリプトが別々なので操作性が良くありません。
また、システム再起動時にも同様の手順を追わなければならないので以下の手順でスクリプトを作成します。
tomcat5の起動・停止スクリプトの作成
# vi /etc/rc.d/init.d/tomcat5
#!/bin/bash
#
# Tomcat
# chkconfig: - 99 20
#
# description: Tomcat service script
# Source function library.
. /etc/rc.d/init.d/functions
TOMBIN=${TOMCAT_HOME}/bin
case "$1" in
start)
if [ -z $(/sbin/pidof java) ]; then
echo "Starting Tomcat..."
${TOMBIN}/catalina.sh $1
touch /var/lock/subsys/tomcat
else
echo "Tomcat allready running!!!"
fi
;;
stop)
if [ ! -z $(/sbin/pidof java) ]; then
echo "Shutting down Tomcat..."
${TOMBIN}/catalina.sh $1
until [ -z $(/sbin/pidof java) ]; do :; done
rm -f /var/lock/subsys/tomcat
else
echo "Tomcat not running!!!"
fi
;;
status)
if [ -z $(/sbin/pidof java) ]; then
echo "Tomcat not running..."
else
echo "Tomcat is running... pid=[$(/sbin/pidof java)]"
fi
;;
version)
/bin/sh ${TOMBIN}/version.sh
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart|status|version}"
exit 1
esac
exit 0
作成したスクリプトのパーミッション変更
# chmod 755 /etc/rc.d/init.d/tomcat5
スクリプトの動作確認
tomcatの起動
# /etc/rc.d/init.d/tomcat5 start
Starting Tomcat...
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/java
tomcatのステータス確認
# /etc/rc.d/init.d/tomcat5 status
Tomcat is running... pid=[3917]
tomcatの停止
# /etc/rc.d/init.d/tomcat5 stop
Shutting down Tomcat...
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/java
tomcatのバージョン表示
# /etc/rc.d/init.d/tomcat5 version
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/java
Server version: Apache Tomcat/5.5.12
Server built: Sep 23 2005 09:40:42
Server number: 5.5.12.0
OS Name: Linux
OS Version: 2.6.17-1.2157_FC5
Architecture: i386
JVM Version: 1.5.0_07-b03
JVM Vendor: Sun Microsystems Inc.
tomcat5スクリプトをシステムに反映
tomcat5スクリプトをサービスに追加
# chkconfig --add tomcat5
tomcat5スクリプトを自動起動に設定
# chkconfig tomcat5 on
tomcat5スクリプトの自動起動確認
# chkconfig --list tomcat5
tomcat5 0:off 1:off 2:on 3:on 4:on 5:on 6:off
|
*:ダウンロードした「tomcat5.tar」が「/root/」直下にコピーした場合で説明します。 配置位置に移動 # cd /etc/rc.d/init.d/ tarファイルを展開 # tar xvf /root/tomcat5.tar カレント位置へ移動 # cd 展開したファイル存在の確認 # ls -l /etc/rc.d/init.d/tomcat5 -rwxr-xr-x 1 root root 927 7月 26 04:52 /etc/rc.d/init.d/tomcat5 スクリプトの動作確認 tomcatの起動 # /etc/rc.d/init.d/tomcat5 start Starting Tomcat... Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java tomcatのステータス確認 # /etc/rc.d/init.d/tomcat5 status Tomcat is running... pid=[3917] tomcatの停止 # /etc/rc.d/init.d/tomcat5 stop Shutting down Tomcat... Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java tomcatのバージョン表示 # /etc/rc.d/init.d/tomcat5 version Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java Server version: Apache Tomcat/5.5.12 Server built: Sep 23 2005 09:40:42 Server number: 5.5.12.0 OS Name: Linux OS Version: 2.6.17-1.2157_FC5 Architecture: i386 JVM Version: 1.5.0_07-b03 JVM Vendor: Sun Microsystems Inc. tomcat5スクリプトをサービスに追加 # chkconfig --add tomcat5 tomcat5スクリプトを自動起動に設定 # chkconfig tomcat5 on tomcat5スクリプトの自動起動確認 # chkconfig --list tomcat5 tomcat5 0:off 1:off 2:on 3:on 4:on 5:on 6:off |
クライアントより[http://サーバのアドレス/servlets-examples/]でアクセスして下記の様な画面が表示されれば動作しています。

クライアントより[http://サーバのアドレス/jsp-examples/]でアクセスして下記の様な画面が表示されれば動作しています。
