Fedora Core 4 Tomcat


前書き

JAVAによるWebアプリケーション(JSP)を動かすためにはJava アプリケーションサーバ(サーブレット)が必要になります。
またこれに合わせて開発環境としてJ2SE(Java 2 Platform Standard Edition)が必要です。

ここではJ2SEとTomcatのインストール。
ApacheへTomcatの組み込みを行います。

J2SE(JDK)の入手とインストール

J2SEとはJavaを開発・動かす場合に必要なソフトウェア開発キット。
SUNのJ2SE公式サイトより最新のSDKをダウンロードします。
インストールに便利なRPMパッケージを選択するといいでしょう。
ここでは執筆時の最新J2SE(TM) Development Kit 5.0 Update 6を選択してます。

使用許諾の関係があるのでブラウザ上で使用許諾を了解してダウンロードしてください。
その後、ダウンロードしたファイルをFTPなどを用いてサーバーのユーザーディレクトリなどに置きます。

実行フラグを立てます。

# chmod +x ~/jdk-1_5_0_06-linux-i586-rpm.bin

インストールを開始します。
ライセンス(英文)が表示されるので同意であれば yes と入力してます。
その後、自動的にインストールが行われます。

# cd /usr/local
# ~/jdk-1_5_0_06-linux-i586-rpm.bin
For inquiries please contact: Sun Microsystems, Inc., 4150 Network
Circle, Santa  Clara, California 95054, U.S.A.  (LFI#141623/Form ID#011801)

Do you agree to the above license terms? [yes or no]

と聞いてくるので yes を入力
RPMパッケージインストールが開始される。

npacking...
Checksumming...
0
0
Extracting...
UnZipSFX 5.42 of 14 January 2001, by Info-ZIP (Zip-Bugs@lists.wku.edu).
  inflating: jdk-1_5_0_06-linux-i586.rpm
Preparing...                ########################################### [100%]
   1:jdk                    ########################################### [100%]

Done.

これが表示されれば、無事インストール終了です。

J2SDkの環境変数の設定

JAVAを使用するユーザーの ~/.bash_profile を修正します。
下記の2行を追加します。
インストール先は上記の方法であれば
/usr/java/jdk1.5.0_06
にインストールされています。

export JAVA_HOME=/usr/java/jdk1.5.0_06
export PATH=$PATH:$JAVA_HOME/bin 

設定した環境変数を読み込みます。

# source ~/.bash_profile

Tomcatのソースファイルの入手・展開

TomcatのWebサイトよりバイナリファイルを取得
ここでは執筆時の最新バージョン5.5.12を選択してます。
最新バージョンを確認して相応に置き換えてください
Tomcat公式サイト: http://tomcat.apache.org/index.html

# cd /usr/loca/src
# wget http://ftp.kddilabs.jp/infosystems/apache/tomcat/tomcat-5/v5.5.12/bin/apache-tomcat-5.5.12.tar.gz
# cd /usr/local/
# tar xzf /usr/local/src/apache-tomcat-5.5.12.tar.gz
# ln -s apache-tomcat-5.5.12 /usr/local/tomcat

仮動作試験

正常にTomcatが動くか確認します。

# /usr/local/tomcat/bin/startup.sh

ブラウザで下記のURLにアクセスします。
http://サーバーのIPアドレス:8080/

ページが表示されれば仮動作確認OKです。

ただし、ここで外部ネットワークから作業している場合、ルーターでポート8080を許可していないとアクセスできませんの注意してください。
その場合はコマンド上からテキストブラウザ(lynx)などを用いて確認するといいでしょう。

Tomcatを終了させます。

# /usr/local/tomcat/bin/shutdown.sh

Apacheへ組み込み

Tomcat自体がWebサーバー機能を持っていますが、たいていはApacheとの連携になると思います。
Apacheと連携させるためにはmod_jkというコネクタモジュールを使用します。

Apacheの公式サイトの The Apache Jakarta Tomcat Connector から最新版をダウンロードします。 執筆時点の最新版は 1.2.15 です。

# wget http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.15/jakarta-tomcat-connectors-1.2.15-src.tar.gz
# tar xzf jakarta-tomcat-connectors-1.2.15-src.tar.gz
# cd jakarta-tomcat-connectors-1.2.15-src/jk/native/
# ./configure --with-apxs=/usr/local/apache2/bin/apxs
# make
# make install

※Apache2への詳しいインストール方法は 公式のインストールドキュメント を参照ください。

httpd.confの修正

/usr/local/apache2/conf/ 配下に workers.properties を作成します。

# vi /usr/local/apache2/conf/workers.properties

以下の内容を入力します。

worker.list=ajp13
worker.ajp13.libfactor=1
worker.ajp13.port=8009
worker.ajp13.host~localhost
worker.ajp13.type=ajp13

次に httpd.conf を修正します。

# vi /usr/local/apache2/conf/httpd.conf

以下を追記します。

LoadModule jk_module modules/mod_jk.so
<IfModule mod_jk.c>
  JkWorkersFile "/usr/local/apache2/conf/workers.properties"
  JkLogFile logs/mod_jk.log
  JkLogLevel warm
  JkMount /*.jsp ajp13
</IfModule>

Tomcat・Apache起動

まずTomcatを起動させます。

# /usr/local/tomcat/bin/start.sh

つぎにApacheを再起動させます。

# /etc/rc.d/init.d/httpd restart

動作確認

JSPでの Document Root は /usr/local/tomcat/webapps/ROOT/ になっています。
そのディレクトリにテスト用のファイルを設置してみます。

# vi /usr/local/tomcat/webapps/ROOT/test.jsp

以下の内容を入力します。

<html>
<head>
<title>TEST</title>
</head>
<body>

<%
out.println("Hello");
%>

</body>
</html>

ブラウザから http://ドメイン(IPアドレス)/test.jsp で表示すると

Hello

が表示されれば動作OKです。

ディレクトリとURLの関連付け

任意のディレクトリにJSPファイルを作成し表示させるためには server.xml に対してマッピングを定義する必要があります。

# vi /usr/local/tomcat/conf/server.xml

例として以下の内容を追記します。

<Context path="/jsptest"
    docBase="/home/hogehoge/jsp"
    reloadable="ture">
</Context>

これは /home/hogehoge/jsp のディレクトリに保存されているコンテンツを jsptest というアプリケーション名でアクセスするという内容になります。
実際にアクセスするURLは

http://ドメイン名(IPアドレス)/jsptest/

になります。
reloadable="true" とは、ディレクトリ内のファイルに変更が生じた際、自動で反映させるためです。

修正を加えた場合は設定を反映させるために再起動させます。
Tomcat→Apacheの順で再起動してください。

JDBCインストール

JAVA上からデータベースをコントロールする際にJDBCを使用します。
PostgreSQL用のJDBCは http://jdbc.postgresql.org/index.html から入手します。
MySQL用のJDBCは http://dev.mysql.com/downloads/connector/j/3.0.html から入手します。

入手した jarファイルを /usr/local/tomcat/common/lib にコピーします。
※MySQLの場合はZIPファイルになっているので解凍してjarファイルをコピーします。

Tomcatの自動起動設定

セキュリティーの面でTomcatはnobodyユーザー(apacheの起動と同等のユーザー)で行ないます。
参照:LinuxのJavaサービスに対する安全性を高める

まずはnobodyユーザーで起動させるための下準備を行ないます。
Tomcatの特定のディレクトリをnobodyユーザーに変えます。

# chown -R nobody.nobody /usr/local/tomcat/webapps
# chown -R nobody.nobody /usr/local/tomcat/work
# chown -R nobody.nobody /usr/local/tomcat/logs
# chown -R nobody.nobody /usr/local/tomcat/conf

次に起動スクリプトから呼ばれるnobodyユーザーのPATH設定用のスクリプトを用意します。

#vi /usr/local/tomcat/bin/srvstart.sh
#!/bin/bash
export JAVA_HOME=/usr/java/jdk1.5.0_06
CATALINA_HOME=/usr/local/tomcat5

# run the startup script from Tomcat installation
$CATALINA_HOME/bin/startup.sh
#vi /usr/local/tomcat/bin/srvstop.sh
#!/bin/bash
export JAVA_HOME=/usr/java/jdk1.5.0_06
CATALINA_HOME=/usr/local/tomcat5

# run the startup script from Tomcat installation
$CATALINA_HOME/bin/shutdown.sh

これらのスクリプトに起動権限を与えます。

# chmod +x /usr/local/tomcat/bin/srvstart.sh
# chmod +x /usr/local/tomcat/bin/srvstop.sh

次に起動スクリプトを作成します。

# vi /etc/rc.d/init.d/tomcat
#
# Startup script for the Apache Tomcat
#
# chkconfig: 345 80 15
# description: Apache Tomcat is the Web container for Java Servlet & JSP.

CATALINA_HOME=/usr/local/tomcat

# Source function library.
. /etc/rc.d/init.d/functions

[ -f $CATALINA_HOME/bin/srvstart.sh ] || exit 0
[ -f $CATALINA_HOME/bin/srvstop.sh ] || exit 0

RETVAL=0

start() {
    echo -n "Starting tomcat: "
    daemon --user "nobody" "$CATALINA_HOME/bin/srvstart.sh"
    echo
    return $RETVAL
}
stop() {
    echo -n "Stopping tomcat:"
    daemon --user nobody $CATALINA_HOME/bin/srvstop.sh
    echo
    return $RETVAL
}
restart() {
    stop
    sleep 2
    start
}

case "$1" in
start)
    start
    ;;
stop)
    stop
    ;;
restart|reload)
    restart
    ;;
*)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac

exit $?

同様に実行権限を与えます。

# chmod +x /etc/rc.d/init.d/tomcat

自動起動サービスに登録します。

# chkconfig --add tomcat
# chkconfig --list tomcat
httpd 0:オフ 1:オフ 2:オフ 3:オン 4:オン 5:オン 6:オフ
# chkconfig tomcat on

最後にtomcatが起動されていないことを確認し、tomcatを実行します。

# /etc/rc.d/init.d/tomcat start

/



Last-modified: 2015-04-23 (木) 15:18:59 (1275d)