事前にjavaがインストールされているか確認しよう。
http://d.hatena.ne.jp/masayuki14/20100208
Tomcatをダウンロード
最新バージョンの6.0.20をダウンロード(2009年12月25日現在)
Binary Distributions, Core, tar.gz をダウンロードする。
http://tomcat.apache.org/download-60.cgi
インストールするLinuxマシンで直接ダウンロードする場合は、wget コマンドを使用する。
ファイルをダウンロードするフォルダに移動して、
# wget http://ftp.riken.jp/net/apache/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.tar.gz --09:54:29-- http://ftp.riken.jp/net/apache/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.tar.gz ftp.riken.jp をDNSに問いあわせています... 134.160.38.1 ftp.riken.jp|134.160.38.1|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 5998298 (5.7M) [application/x-gzip] Saving to: `apache-tomcat-6.0.20.tar.gz' 100%[===============================================================================>] 5,998,298 2.56M/s in 2.2s 09:54:31 (2.56 MB/s) - `apache-tomcat-6.0.20.tar.gz' を保存しました [5998298/5998298]
ダウンロードしたファイルを解凍する
# tar -xvf apache-tomcat-6.0.20.tar.gz
TOMCATをインストールする
RPMで管理されたパッケージではなく追加の独自コンポーネントなので、「/opt」以下に移動する。
/opt に移動するにはrootになっておく必要がある。
# su - # mv apache-tomcat-6.0.20 /opt/tomcat6
公開サービスが乗っ取られたときに不用意に権限を与えて情報を漏らさないように専用ユーザーを用意して起動することがセキュリティ上望ましい。
Tomcatを起動するためだけの専用ユーザー「tomcat」を作成し、管理はそのユーザーに任せる。
# useradd -d /opt/tomcat6 -s /sbin/nologin tomcat
useradd help.
-d home directory for the new user account
-s the login shell for the new user account
作成したtomcatユーザーでアプリケーションを起動できるようTomcatのインストールフォルダのPermissionを変更する。
# chown -R tomcat. /opt/tomcat6
※この時点でインストールはひとまず完了
Tomcatを自動起動にする
インストールしたままのTomcatでは起動用のスクリプトが用意されていないので自作する必要がある。Tomcatに同梱されているApacheCommonsDeamonを使用して、Tomcatのデーモンを作成する。
(binフォルダのjsvc.tar.gzがそれ。)
※Commons Daemonをビルドするためには、サーバコンポーネントのビルド環境が必要となる。
autoconf、makeなどのビルド用ツール(コマンド)を実行できる環境をあらかじめ用意しておく。
ApacheCommonsDeamonを取り出し、/tmpなどの作業用フォルダに移動(またはコピー)させる。
# mv -f /opt/tomcat6/bin/jsvc.tar.gz /tmp # cp -f /opt/tomcat6/bin/jsvc.tar.gz /tmp
ファイルを移動したら、そこへ移動しファイルを解凍する。
# cd /tmp # tar -xzf jsvc.tar.gz
解凍すると「jsvc-src」というフォルダが作成されるので、そこへ移動。
移動したら autoconf を利用して configure スクリプトを作成する。
その後 configure を実行する。
# cd jsvc-src # autoconf # sh configure
成功すると最後に以下のように表示される。
*** All done *** Now you can issue "make"
※失敗するとerrorが表示される。今回は
configure: error: Java Home not defined. Rerun with --with-java=... parameter
が表示された。環境変数の JAVA_HOME が設定されていないようなので設定する。
パスが表示されるか確認しよう。
# export JAVA_HOME=/usr/java/jdk1.6.0_16/ # echo $JAVA_HOME
ビルドする。
# make
ビルド後には「jsvc」という実行ファイルが作成される。
作成されたjsvcのパーミッションをtomcatに変更し、
Tomcatのインストールフォルダのbin直下に移動させる。
# chown tomcat. jsvc # mv jsvc /opt/tomcat6/bin
作成に使用したファイル、フォルダは削除する。
※以降の自動起動のスクリプトを作成し終えてからが望ましい。
# cd /tmp # rm -rf jsvc-src/ jsvc.tar.gz
自動起動させるためのスクリプトを作成する
起動スクリプトは jsvc-src/native/Tomcat5.sh をベースに編集する。
作成した起動スクリプトは /etc/rc.d/init.d/ 配下に作成する。
# cp /tmp/jsvc-src/native/Tomcat5.sh /etc/rc.d/init.d/tomcat # vi /etc/rc.d/init.d/tomcat
それぞれのフォルダ構成やパス構成を実際のものに合わせて編集する。
#!/bin/sh # # chkconfig: - 80 20 # description: tomcat # Source function library. . /etc/init.d/functions umask 002 # Adapt the following lines to your configuration JAVA_HOME=/usr/java/jdk1.6.0_13 CATALINA_HOME=/opt/tomcat6 CATALINA_BASE=/opt/tomcat6 TOMCAT_USER=tomcat DAEMON=$CATALINA_HOME/bin/jsvc # for multi instances adapt those lines. TMP_DIR=/var/tmp PID_FILE=/var/run/tomcat/tomcat.pid LOCK_FILE=/var/lock/subsys/tomcat CATALINA_OPTS= CLASSPATH=\ $JAVA_HOME/lib/tools.jar:\ $CATALINA_HOME/bin/commons-daemon.jar:\ $CATALINA_HOME/bin/bootstrap.jar start(){ echo -n "Starting Tomcat:" $DAEMON \ -pidfile $PID_FILE \ -user $TOMCAT_USER \ -home $JAVA_HOME \ -Dcatalina.home=$CATALINA_HOME \ -Dcatalina.base=$CATALINA_BASE \ -Djava.io.tmpdir=$TMP_DIR \ -wait 10 \ -outfile $CATALINA_HOME/logs/catalina.out \ -errfile '&1' \ $CATALINA_OPTS \ -cp $CLASSPATH \ org.apache.catalina.startup.Bootstrap RETVAL=$? if [ $RETVAL = 0 ]; then echo_success touch $LOCK_FILE else echo_failure fi echo } stop(){ echo -n "Shutting down Tomcat:" $DAEMON \ -stop \ -pidfile $PID_FILE \ org.apache.catalina.startup.Bootstrap RETVAL=$? if [ $RETVAL = 0 ]; then echo_success rm -f $PID_FILE $LOCK_FILE else echo_failure fi echo } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) status $DAEMON_HOME RETVAL=$? ;; *) echo "Usage tomcat.sh start/stop/restart/status" exit 1;; esac
すでに運用している別のサーバーがあればそこからコピーするのもOK。
スクリプトの作成が終了したら、実行権限を与える。
# chmod +x /etc/rc.d/init.d/tomcat # chmod 755 /etc/rc.d/init.d/tomcat
最後にchkconfigを実行して起動時のON/OFF設定を行って終了。
この設定は3行目の記述がないとエラーとなる。
# chkconfig tomcat on
手動でTOMCATを実行する場合は
# /sbin/service tomcat start # /etd/init.d/tomcat start
おしまい。
追記
Tomcat.6.0.32 をインストールする機会がありましたが、Tomcatデーモンをコンパイルするフォルダがかわっていました。
jsvc.tar.gz ではなくcommons-daemon-native.tar.gzを解凍してunixディレクリに移動してから同様にコンパイルしてください。
起動できない場合の対処方法。
failed setting default capabilities. set_caps(CAPS) failed for user 'tomcat' Service exit with a return value of 4
catalina.outにこの様なメッセージが吐かれているときは以下のコマンドを実行して対処しましょう。
$ modprobe capability