概要
LinuxサーバへTomcat 7.xを導入し、自動起動するように設定する。
更新日:2012/07/12
環境
以下の環境・バージョンでインストールを行う。
Linux | CentOS 5.5 (64bit) |
---|---|
Java | JRE 1.7.0 update 5 |
Tomcat | 7.0.29 |
手順は次の通り。
- Java (JRE 1.7)のインストール
- Tomcat管理ユーザの作成
- Tomcatのインストール
- startup.sh/shutdown.shの書き換え
- 自動起動スクリプト /etc/init.d/tomcat の設置
- 起動確認
Java (JRE 1.7)のインストール
TomcatのWebページWhich version?で書かれている通り、Tomcat 7.0.xを動かすにはJavaのバージョンが1.6以上である必要がある。そのため、まずSunのページ……ではなくOracleのページからJavaをダウンロードしてインストールする。
Tomcatを動かすだけならばJRE(Javaランタイム環境)だけで良く、JDK(Java開発キット)は必要ない(もちろん、JDKで動かすこともできる)。Java SE Downloadsのページから、2012年7月11日現在でJava 1.7系列最新のJava SE 7u5(Version 7 Update 5)を入れることにする。
JREの"Download"をクリックするとダウンロードページに行くので、[Accept License Agreement]をクリックしてから、Linux x64のパッケージをダウンロードする。rpm版とtar.gz版があるが、tar.gz版にした。
持ってきたtar.gzを適当な場所で展開し、出てきた[jre1.7.0_05]フォルダを /usr/local にコピーしてシンボリックリンクを作っておく。
# tar xvzf jre-7u5-linux-x64.tar.gz # mv jre1.7.0_05 /usr/local # cd /usr/local # ln -s jre1.7.0_05 java
これで、Javaが/usr/local/javaにインストールできた。
Tomcat管理ユーザの作成
Tomcatをroot権限で実行するのはよろしくないので、実行専用のユーザtomcatアカウントを作成する。ログインシェルに/sbin/nologinを指定して通常利用はできないようにしておく。
# useradd -s /sbin/nologin tomcat
Tomcatのインストール
Tomcatの公式ページよりパッケージをダウンロードする。ダウンロードページには色々あるのだが、[Core:]の中の[tar.gz]をダウンロードすれば良い。7.0.29ならばapache-tomcat-7.0.29.tar.gzというファイルになる。
ダウンロードしたtar.gzファイルを、/usr/localに展開する。展開後、ディレクトリのオーナーをtomcatユーザにしておき、tomcatという名前でシンボリックリンクを作成しておく。
# tar xvzf apache-tomcat-7.0.29.tar.gz # mv apache-tomcat-7.0.29 /usr/local # cd /usr/local # chown tomcat:tomcat -R apache-tomcat-7.0.29 # ln -s apache-tomcat-7.0.29 tomcat
これで、Tomcatが/usr/local/tomcatにインストールできた。
startup.sh/shutdown.shの書き換え
JavaとTomcatをインストールしたので、環境変数JAVA_HOMEとCATALINA_HOMEを設定しておく。/etc/profileに書く人も多いが、私はTomcatのbinディレクトリ内にあるstartup.sh/shutdown.shの先頭に追加する形にしている。
JAVA_HOME=/usr/local/java CATALINA_HOME=/usr/local/tomcat export JAVA_HOME CATALINA_HOME
この3行を、/usr/local/tomcat/bin/startup.sh, shutdown.sh のそれぞれ最初(#!/bin/sh の直後)に記述する。
自動起動スクリプト /etc/init.d/tomcat の設置
以下の内容で /etc/init.d/tomcat として設置する。設置後、chmod +xして実行権限を付けること。priority(35 65)は、サーバに合わせて適宜変えると良い。
#!/bin/bash # # Startup script for the Tomcat Servlet Container # # chkconfig: 2345 35 65 # description: Tomcat is the servlet container that is used in the official \ # Reference Implementation for the Java Servlet and JavaServer \ # Pages technologies TOMCAT_USER=tomcat CATALINA_HOME=/usr/local/tomcat . /etc/rc.d/init.d/functions prog=tomcat start() { echo -n $"Starting $prog: " daemon --user $TOMCAT_USER $CATALINA_HOME/bin/startup.sh > /dev/null RETVAL=$? if [ $RETVAL -eq 0 ]; then echo_success else echo_failure fi echo [ $RETVAL = 0 ] && touch /var/lock/subsys/$prog return $RETVAL } stop() { echo -n $"Stopping $prog: " daemon --user $TOMCAT_USER $CATALINA_HOME/bin/shutdown.sh > /dev/null RETVAL=$? if [ $RETVAL -eq 0 ]; then echo_success else echo_failure fi echo [ $RETVAL = 0 ] && rm -f /var/lock/subsys/$prog return $RETVAL } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) INSTANCES=`ps --columns 512 -aef|grep java|grep tomcat|grep org.apache.catalina.startup.Bootstrap|wc -l` if [ $INSTANCES -eq 0 ]; then echo $prog is stopped RETVAL=3 else if [ $INSTANCES -eq 1 ]; then echo $prog is running 1 instance... else echo $prog is running $INSTANCES instances... fi RETVAL=0 fi ;; *) echo $"Usage: $prog {start|stop|restart|status|help}" exit 1 esac exit $RETVAL
tomcat起動スクリプトファイルを/etc/init.dに設置したら、chkconfigコマンドで自動起動するように登録しておく。
# /sbin/chkconfig --add tomcat
自動起動スクリプトのチェック
設置できたら、rootになって実行してみる。
# cd /etc/init.d # ./tomcat start
起動後、http://(サーバのIPアドレス):8080 にアクセスしてみて、Tomcatの起動画面を確認する。上手くいかなければ、/usr/local/tomcat/logs の中身を確認する。
その他備考
- $CATALINA_BASE という環境変数を設定する人もいるが、これは1台のサーバで複数のTomcatを利用する場合に必要なもの。複数使わないなら設定の必要は無い。
- Tomcatをデーモンとして実行するためには、Tomcatに付属しているjsvc toolというのを使う方法もある。しかし、これを使うには自分でビルドする必要があったり、/usr/lib/libcap.so が無いと言われたり色々ややこしかったので、使わない方針にした。
没有评论:
发表评论