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/]でアクセスして下記の様な画面が表示されれば動作しています。