インストール環境とバージョン
今回、インストールするサーバとTomcatのバージョンは以下のようになります。名前 | バージョン | ダウンロード元 |
---|---|---|
ubuntu | 10.04.4(64bit) | http://releases.ubuntu.com/lucid/ |
java(jdk) | 1.7.0_51 | http://www.oracle.com/us/technologies/java/overview/index.html |
Tomcat | 7.0.50 | http://tomcat.apache.org/ |
インストールする前の準備作業
開発パッケージが設置されてない場合は、apt-get
でインストールする必要があります。# apt-get install build-essential curl libcurl3 libpcre3-dev libssl-dev libxml2-dev libbz2-dev libgd2-xpm-dev libmcrypt-dev
JAVA(JDK)のインストール
「Javaのインストール手順」を参照してください。Tomcatのインストール
まず、Linuxのユーザを作成します。※tomcatはセキュリティの為、一般ユーザで実行するようにしましょう。
# groupadd tomcat # useradd -g tomcat -s /bin/false tomcat
Tomcatを設置します。
# mkdir /usr/local/tomcat # cd /usr/local/src/ # wget http://ftp.kddilabs.jp/infosystems/apache/tomcat/tomcat-7/v7.0.50/bin/apache-tomcat-7.0.50.tar.gz # tar xvf apache-tomcat-7.0.50.tar.gz -C /usr/local/tomcat/ # cd /usr/local/tomcat/ # ln -s apache-tomcat-7.0.50 current # chown -R tomcat:tomcat /usr/local/tomcat/
環境ファイルを設定します。
# vi /etc/profile ################# #java ################# JAVA_HOME=/usr/local/java/current ################# #tomcat ################# CATALINA_HOME=/usr/local/tomcat/current TOMCAT_USER=tomcat export JAVA_HOME CATALINA_HOME TOMCAT_USER PATH=$PATH:$HOME/bin:$JAVA_HOME/bin export PATH # source /etc/profile # echo $CATALINA_HOME /usr/local/tomcat/current
Tomcatをデーモン化します。
# cp /usr/local/tomcat/current/bin/commons-daemon-native.tar.gz /tmp/ # cd /tmp/ # tar xvzf commons-daemon-native.tar.gz # cd commons-daemon-1.0.15-native-src/unix/ # ./configure # make # chown tomcat:tomcat jsvc # mv jsvc /usr/local/tomcat/current/bin/ # rm -rf /tmp/commons-daemon-1.0.15-native-src /tmp/commons-daemon-native.tar.gz
Tomcat起動スクリプト
/etc/init.d/tomcat
を作成します。
# vi /etc/init.d/tomcat #!/bin/bash # # chkconfig: - 80 20 # description: catalina-daemon # Source function library. . /lib/lsb/init-functions export CATALINA_OPTS="-Xms1024m -Xmx1024m -XX:NewSize=341m -XX:MaxNewSize=341m -XX:SurvivorRatio=2 -XX:PermSize=128m -XX:MaxPermSize=128m" export CATALINA_PID=$CATALINA_HOME/logs/catalina-daemon.pid export CATALINA_OUT="$CATALINA_HOME/logs/catalina.out" export CATALINA_TMP="$CATALINA_HOME/temp" tomcat=$CATALINA_HOME/bin/daemon.sh prog=tomcat lockfile=${LOCKFILE-/var/lock/tomcat} RETVAL=0 start() { echo -n $"Starting $prog: " $tomcat start RETVAL=$? echo -n "[ $RETVAL ]" if [ $RETVAL = 0 ]; then echo "success" touch ${lockfile} else echo "failure" fi echo return $RETVAL } stop() { echo -n $"Stopping $prog: " $tomcat stop RETVAL=$? if [ $RETVAL = 0 ]; then echo "success" rm -f ${lockfile} ${CATALINA_PID} else echo "failure" fi echo return $RETVAL } version() { $tomcat version RETVAL=$? return $RETVAL } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; condrestart) if [ -f ${CATALINA_PID} ] ; then stop start fi ;; status) if [ -f ${CATALINA_PID} ] ; then cat /proc/`cat ${CATALINA_PID}`/status else echo "Tomcat is not running" fi ;; version) version ;; *) echo $"Usage: $prog {start|stop|restart|condrestart|status|version}" exit 1 esac exit $RETVAL
Tomcatを起動します。
# chmod +x /etc/init.d/tomcat # /etc/init.d/tomcat start Starting tomcat: [ 0 ]success # ps -ef | grep tomcat root 6188 1 0 17:14 ? 00:00:00 jsvc.exec -java-home /usr/local/java/current -user tomcat -pidfile /usr/local/tomcat/current/logs/catalina-daemon.pid -wait 10 -outfile /usr/local/tomcat/current/logs/catalina.out -errfile &1 -classpath /usr/local/tomcat/current/bin/bootstrap.jar:/usr/local/tomcat/current/bin/commons-daemon.jar:/usr/local/tomcat/current/bin/tomca -juli.jar -Djava.util.logging.config.file=/usr/local/tomcat/current/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms512m -Xmx512m -XX:NewSize=341m -XX:MaxNewSize=341m -XX:SurvivorRatio=2 -XX:PermSize=128m -XX:MaxPermSize=128m -Djava.endorsed.dirs= -Dcatalina.base=/usr/local/tomcat/current -Dcatalina.home=/usr/local/tomcat/current -Djava.io.tmpdir=/usr/local/tomcat/current/temp org.apache.catalina.startup.Bootstrap tomcat 6189 6188 1 17:14 ? 00:00:02 jsvc.exec -java-home /usr/local/java/current -user tomcat -pidfile /usr/local/tomcat/current/logs/catalina-daemon.pid -wait 10 -outfile /usr/local/tomcat/current/logs/catalina.out -errfile &1 -classpath /usr/local/tomcat/current/bin/bootstrap.jar:/usr/local/tomcat/current/bin/commons-daemon.jar:/usr/local/tomcat/current/bin/tomca -juli.jar -Djava.util.logging.config.file=/usr/local/tomcat/current/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms512m -Xmx512m -XX:NewSize=341m -XX:MaxNewSize=341m -XX:SurvivorRatio=2 -XX:PermSize=128m -XX:MaxPermSize=128m -Djava.endorsed.dirs= -Dcatalina.base=/usr/local/tomcat/current -Dcatalina.home=/usr/local/tomcat/current -Djava.io.tmpdir=/usr/local/tomcat/current/temp org.apache.catalina.startup.Bootstrap root 6206 1118 0 17:16 pts/0 00:00:00 grep --color=auto tomcattomcatのプロセスは親・子で、2つ上がるのが正常だそうです。
※起動時に時間がかかってfailureになる場合は
Tomcat7の起動が遅い時
部分を参照してください。
catalina.out
ログを簡単に確認できるようにalias
を登録します。# vi /etc/profile alias tclog="tail -f -n100 /usr/local/tomcat/current/logs/catalina.out" # source /etc/profile # tclog .... Feb 18, 2014 6:32:38 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-8080"] Feb 18, 2014 6:32:38 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["ajp-bio-8009"] Feb 18, 2014 6:32:38 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 2010 ms
正常に起動されましたら、ブラウザから接続してみましょう。
基本的にtomcatのポートは8080になっています。
※ポート番号は
/usr/local/tomcat/current/conf/server.xml
のConnector
のプロトコルprotocol="HTTP/1.1"
になっているコネクタのポート番号になります。http://192.168.56.102:8080/
Tomcat7の起動が遅い時
Tomcat7をstartupした時に時間がかかり、failure
(実際には成功したにも関わらず)になる場合があります。catalina.out
ログを確認してみたら、ランダムセッションIDを発行するorg.apache.catalina.util.SessionIdGenerator createSecureRandom
部分で時間がかかっていました。その時はJREの設定を
/dev/random
⇒ /dev/./urandom
(non-blocking)に変更してください。・起動が遅かったときのcatalinaログ
INFO: Initializing ProtocolHandler ["ajp-bio-8009"] Feb 18, 2014 5:25:32 PM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 901 ms Feb 18, 2014 5:25:32 PM org.apache.catalina.core.StandardService startInternal INFO: Starting service Catalina Feb 18, 2014 5:25:32 PM org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.50 Feb 18, 2014 5:25:32 PM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /usr/local/tomcat/apache-tomcat-7.0.50/webapps/host-manager Feb 18, 2014 5:28:42 PM org.apache.catalina.util.SessionIdGenerator createSecureRandom INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [188,975] milliseconds. Feb 18, 2014 5:28:42 PM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /usr/local/tomcat/apache-tomcat-7.0.50/webapps/examples Feb 18, 2014 5:28:43 PM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /usr/local/tomcat/apache-tomcat-7.0.50/webapps/manager Feb 18, 2014 5:28:43 PM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /usr/local/tomcat/apache-tomcat-7.0.50/webapps/ROOT Feb 18, 2014 5:28:43 PM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /usr/local/tomcat/apache-tomcat-7.0.50/webapps/docs Feb 18, 2014 5:28:43 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-8080"] Feb 18, 2014 5:28:43 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["ajp-bio-8009"] Feb 18, 2014 5:28:43 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 191154 msSecureRandom部分で[188,975] millisecondsがかかっていますね。
・対策(Tomcat起動時のJREの設定変更)
# vi /etc/profile ################# #java ################# JAVA_HOME=/usr/local/java/current JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom" ################# #tomcat ################# CATALINA_HOME=/usr/local/tomcat/current TOMCAT_USER=tomcat export JAVA_HOME CATALINA_HOME TOMCAT_USER JAVA_OPTS既存の
/etc/profile
にJAVA_OPTS
部分を追加しました。適応した後、確認
# source /etc/profile # echo $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom
問題なく出力されたら、
daemon.sh
を修正して、環境ファイルのJAVA_OPTS設定を使うようにしましょう。# vi /usr/local/tomcat/current/bin/daemon.sh # Ensure that any user defined CLASSPATH variables are not used on startup, # but allow them to be specified in setenv.sh, in rare case when it is needed. CLASSPATH= JAVA_OPTS="$JAVA_OPTS"122Lineの
JAVA_OPTS=
をJAVA_OPTS="$JAVA_OPTS"
に修正しました。Tomcatの起動速度を確認すると以下のようになりました。
# /etc/init.d/tomcat stop # /etc/init.d/tomcat start Feb 19, 2014 10:12:59 AM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["http-bio-8080"] Feb 19, 2014 10:12:59 AM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["ajp-bio-8009"] Feb 19, 2014 10:12:59 AM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 910 ms Feb 19, 2014 10:12:59 AM org.apache.catalina.core.StandardService startInternal INFO: Starting service Catalina Feb 19, 2014 10:12:59 AM org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.50 Feb 19, 2014 10:12:59 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /usr/local/tomcat/apache-tomcat-7.0.50/webapps/host-manager Feb 19, 2014 10:13:00 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /usr/local/tomcat/apache-tomcat-7.0.50/webapps/examples Feb 19, 2014 10:13:00 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /usr/local/tomcat/apache-tomcat-7.0.50/webapps/manager Feb 19, 2014 10:13:01 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /usr/local/tomcat/apache-tomcat-7.0.50/webapps/ROOT Feb 19, 2014 10:13:01 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /usr/local/tomcat/apache-tomcat-7.0.50/webapps/docs Feb 19, 2014 10:13:01 AM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-8080"] Feb 19, 2014 10:13:01 AM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["ajp-bio-8009"] Feb 19, 2014 10:13:01 AM org.apache.catalina.startup.Catalina start INFO: Server startup in 2016 ms【参照したサイト】
0 コメント:
コメントを投稿