続いてアプリケーションサーバ Tomcat のセットアップ。
取り敢えず、最新を入れておきたいので、Apache Tomcat のサイトからダウンロードしてセットアップすることにしよう。
現時点では Tomcat 8.0.32 が最新版か。
(1) 最新版のダウンロード
Tomcat 8 のダウンロードサイトより、apache-tomcat-8.0.32.tar.gz を /usr/local 上にダウンロード
# cd /usr/local/
# wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/tomcat/tomcat-8/v8.0.32/bin/apache-tomcat-8.0.32.tar.gz
# ls -la apache-tomcat-8.0.32.tar.gz
-rw-r--r-- 1 root root 9169108 Feb 3 05:03 apache-tomcat-8.0.32.tar.gz
(2) tar.gz ファイルの展開
# tar xvfzp apache-tomcat-8.0.32.tar.gz
(3) ディレクトリ名の変更
展開した配布物のディレクトリ名を、apache-tomcat-8.0.32 から tomcat に変更する。
# mv apache-tomcat-8.0.32 tomcat
でもいいけど、今後、新しいバージョンを入れた時に切り替えやすいよう、シンボリックリンクにしとこうか。
# ln -s apache-tomcat-8.0.32 tomcat
# ls -la tomcat
lrwxrwxrwx 1 root root 20 Feb 12 16:26 tomcat -> apache-tomcat-8.0.32
(4) 所有者を tomcat に変更
安全のため、実行ユーザを tomcat という一般ユーザにする。
そのため、tomcat ディレクトリ以下の所有者も tomcat に。
(シンボリックリンクしているので、実体の方を chown する)
# useradd -s /sbin/nologin tomcat
# chown -R tomcat apache-tomcat-8.0.32
(5) 実行してみる
# sudo -u tomcat 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
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
自宅PCのブラウザで、
http://www.exsample.com:8080/
にアクセスしてみると、無事、Apache Tomcat/8.0.32 の画面が見えた。
(6) ポート番号 8080 を別の番号に変更
どうも、8080番のポート番号はプロキシサーバのものという認識なので(昔からサーバ屋をしている人は皆そうだと思うけど(^^;)、別のポート番号に変更する。
# grep 8080 tomcat/conf/server.xml
Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
<Connector port="8080" protocol="HTTP/1.1"
port="8080" protocol="HTTP/1.1"
ここを修正かね?
# cp tomcat/conf/server.xml tomcat/conf/server.xml_20160212
# vi tomcat/conf/server.xml
# diff tomcat/conf/server.xml tomcat/conf/server.xml_20160212
67c67
< Define a non-SSL/TLS HTTP/1.1 Connector on port 8080 ==> 9876
---
> Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
69c69
< <Connector port="9876" protocol="HTTP/1.1"
---
> <Connector port="8080" protocol="HTTP/1.1"
75c75
< port="9876" protocol="HTTP/1.1"
---
> port="8080" protocol="HTTP/1.1"
kill -HUP XXX じゃ駄目で、ちゃんと、シャットダウンコマンドで終わらせてから再起動しないと新しいポート番号は有効にならんようやね。
# tomcat/bin/shutdown.sh
# sudo -u tomcat tomcat/bin/startup.sh
これで、
http://www.exsample.com:9876/
でアクセス可能となる。
iptables とかで制限かけてる時は、そっちの設定変更も必要よ。
(7) 自動起動の設定をする
# cat > /etc/init.d/tomcat
#!/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
# chmod 755 /etc/init.d/tomcat
# chkconfig --add tomcat
# chkconfig --list tomcat
tomcat 0:off 1:off 2:on 3:on 4:on 5:on 6:off
(8) 自動起動スクリプトを使って起動
まず、現在立ち上げている Tomcat を落とす。
# tomcat/bin/shutdown.sh
そして、service コマンドで起動。
# service tomcat start
Starting tomcat: [ OK ]
# ps auxww|grep tomcat
tomcat 12464 57.1 7.4 2726440 75868 ? Sl 19:12 0:04 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root 12489 0.0 0.0 103244 872 pts/0 S+ 19:12 0:00 grep tomcat
バッチリ。
取り敢えず Apache との連携はせず、これで Java(JSP、サーブレット)の自習をしましょう。