続いてアプリケーションサーバ 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 tomcatlrwxrwxrwx 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.shUsing CATALINA_BASE: /usr/local/tomcatUsing CATALINA_HOME: /usr/local/tomcatUsing CATALINA_TMPDIR: /usr/local/tomcat/tempUsing JRE_HOME: /usrUsing CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jarTomcat started.自宅PCのブラウザで、http://www.exsample.com:8080/にアクセスしてみると、無事、Apache Tomcat/8.0.32 の画面が見えた。
(6) ポート番号 8080 を別の番号に変更
どうも、8080番のポート番号はプロキシサーバのものという認識なので(昔からサーバ屋をしている人は皆そうだと思うけど(^^;)、別のポート番号に変更する。# grep 8080 tomcat/conf/server.xmlDefine 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_2016021267c67< Define a non-SSL/TLS HTTP/1.1 Connector on port 8080 ==> 9876---> Define a non-SSL/TLS HTTP/1.1 Connector on port 808069c69< <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 technologiesTOMCAT_USER=tomcatCATALINA_HOME=/usr/local/tomcat. /etc/rc.d/init.d/functionsprog=tomcatstart() {echo -n $"Starting $prog: "daemon --user $TOMCAT_USER $CATALINA_HOME/bin/startup.sh > /dev/nullRETVAL=$?if [ $RETVAL -eq 0 ]; thenecho_successelseecho_failurefiecho[ $RETVAL = 0 ] && touch /var/lock/subsys/$progreturn $RETVAL}stop() {echo -n $"Stopping $prog: "daemon --user $TOMCAT_USER $CATALINA_HOME/bin/shutdown.sh > /dev/nullRETVAL=$?if [ $RETVAL -eq 0 ]; thenecho_successelseecho_failurefiecho[ $RETVAL = 0 ] && rm -f /var/lock/subsys/$progreturn $RETVAL}# See how we were called.case "$1" instart)start;;stop)stop;;restart)stopstart;;status)INSTANCES=`ps --columns 512 -aef|grep java|grep tomcat|grep org.apache.catalina.startup.Bootstrap|wc -l`if [ $INSTANCES -eq 0 ]; thenecho $prog is stoppedRETVAL=3elseif [ $INSTANCES -eq 1 ]; thenecho $prog is running 1 instance...elseecho $prog is running $INSTANCES instances...fiRETVAL=0fi;;*)echo $"Usage: $prog {start|stop|restart|status|help}"exit 1esacexit $RETVAL※ozuma さんのサイトに載っていたスクリプト例の丸パクリです。# chmod 755 /etc/init.d/tomcat# chkconfig --add tomcat# chkconfig --list tomcattomcat 0:off 1:off 2:on 3:on 4:on 5:on 6:off
(8) 自動起動スクリプトを使って起動
まず、現在立ち上げている Tomcat を落とす。# tomcat/bin/shutdown.shそして、service コマンドで起動。# service tomcat startStarting tomcat: [ OK ]# ps auxww|grep tomcattomcat 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 startroot 12489 0.0 0.0 103244 872 pts/0 S+ 19:12 0:00 grep tomcat
バッチリ。
取り敢えず Apache との連携はせず、これで Java(JSP、サーブレット)の自習をしましょう。
コメントする