個人的には、あまりTomcatやJavaといったものが好きではなかったのだが、今のプロジェクトがTomcatを扱っているため、忘れないように設定方法についてを記述していくことにする。
まずはOracle JDK及びTomcatのインストールから。
1.Oracle JDKのインストール
まずは、Tomcatをインストールする上で前提となるJDKのインストールを行う。
JDKにはOpenJDKとOracleJDKがあるが、通常業務で利用する場合はOracleJDKを用いるので、そちらをインストールする。
まずは、Oracle社のこちらのページからOracle JDKをダウンロード。今回はOracle JDK 7u75を用いる。
ファイルダウンロード後、サーバ側で以下のように「/opt/jdk」ファイルを作成する。
(別に任意の場所でいいんだけど、とりあえず作成した。)
mkdir /opt/java
cd /opt/java
作成した「/opt/jdk」フォルダに先ほどダウンロードしたファイルを転送する。Teratermなどを利用しているならば、SCP機能を利用すると良いだろう。
次に、ダウンロードしたJDKのアーカイブファイルを展開する。
tar xzvf jdk-7u75-linux-x64.gz
上記コマンドを実行することにより、「/opt/java/jdk1.7.0_75」というディレクトリが作成された。
このままこのディレクトリをJAVA_HOMEに設定するのもあれなので、中身を全て「/opt/java/」に移動し、古いファイルを削除する。
mv ./jdk1.7.0_75/* ./
rm -rf ./jdk1.7.0_75/
rm -rf ./jdk-7u75-linux-x64.gz
次に、環境変数の設定を行う。
起動時に読み込まれるよう、まずは「/etc/profile」の末尾に以下のコマンドを実行して追記を行う。
echo 'JAVA_HOME=/opt/java' >> /etc/profile
echo 'export JAVA_HOME' >> /etc/profile
echo 'PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
echo 'CATALINA_HOME=/opt/tomcat' >> /etc/profile
echo 'export CATALINA_HOME' >> /etc/profile
. /etc/profile
設定した環境変数が反映されているか、以下のコマンドで確認を行う。
echo $JAVA_HOME
以下のように出力されたら設定が行われている。
$ echo $JAVA_HOME
/opt/java
2.Tomcatのインストール
次に、Tomcatのインストールを行う。
まずは、Tomcatのインストールファイルをこちらのページからダウンロードする。今回は、「apache-tomcat-7.0.59.tar.gz」を用いる。
もしくは、以下のコマンドでダウンロードを行う。
wget http://ftp.riken.jp/net/apache/tomcat/tomcat-7/v7.0.59/bin/apache-tomcat-7.0.59.tar.gz
まずは、tomcatようのhomeディレクトリとして「/opt/tomcat」を作成する。
mkdir /opt/tomcat
cd /opt/tomcat
その後、ダウンロードした「apache-tomcat-7.0.59.tar.gz」を「/opt/tomcat」に転送し、アーカイブファイルを展開する。
tar xzvf apache-tomcat-7.0.59.tar.gz
上記コマンドを実行することにより、「/opt/tomcat/apache-tomcat-7.0.59」というディレクトリが作成された。
OracleJDKと同様、「/opt/tomcat」にファイルの中身を移動する。
mv ./apache-tomcat-7.0.59/* ./
rm -rf ./apache-tomcat-7.0.59/
rm -rf ./apache-tomcat-7.0.59.tar.gz
次に、起動ファイルを作成する。
CentOS 7ということで、「/etc/init.d」版と「/usr/lib/systemd/system/」版の2種類を用意した。
「/etc/init.d」版
serviceコマンドでの起動の場合はこちら。
「/etc/init.d/」ディレクトリ配下に、以下の内容で新規に「tomcat」ファイルを生成する。
vim /etc/init.d/tomcat
●/etc/init.d/tomcat
#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat\
# chkconfig: 234 20 80
JAVA_HOME=/opt/java
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/opt/tomcat
case $1 in
start)
sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sh $CATALINA_HOME/bin/shutdown.sh
;;
restart)
sh $CATALINA_HOME/bin/shutdown.sh
sh $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0
「/etc/init.d/tomcat」作成後、以下のコマンドを実行しパーミッション、自動起動設定を行う。
chmod 755 /etc/init.d/tomcat
chkconfig --add tomcat
chkconfig --level 234 tomcat on
「/usr/lib/systemd/system/」版
systemdでの起動の場合はこちら。
「/usr/lib/systemd/system/」ディレクトリ配下に、以下の内容で新規に「tomcat.service」ファイルを生成する。
vim /usr/lib/systemd/system/tomcat.service
●/usr/lib/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
PIDFile=/var/run/tomcat.pid
Environment=CATALINA_PID=/var/run/tomcat.pid
Environment=JAVA_HOME=/opt/java/
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment=CATALINA_OPTS=
ExecStart=$CATALINA_HOME/bin/startup.sh
ExecStop=$CATALINA_HOME/bin/shutdown.sh
ExecReStart=$CATALINA_HOME/bin/shutdown.sh;$CATALINA_HOME/bin/startup.sh
[Install]
WantedBy=multi-user.target
ファイル作成後、以下のコマンドを実行しパーミッション、自動起動設定を行う。
chmod 755 /usr/lib/systemd/system/tomcat.service
systemctl enable tomcat
サービスの起動前に、tomcatユーザの 作成を行う。
以下のコマンドで、tomcatユーザを作成、「/opt/tomcat」配下の所有者を変更する。
useradd -s /sbin/nologin -d /opt/tomcat tomcat
chown -R tomcat:tomcat /opt/tomcat
後は、tomcatサービスを実際に起動させてみるだけだ。
以下のコマンドを実行する。
service start tomcat
もしくは
systemctl start tomcat
以下のコマンドで、tomcatのプロセスが起動している事を確認する。
ps -ef | grep [t]omcat
無事起動している場合は、以下のように表示される。
ps -ef | grep [t]omcat
root 3251 1 0 3月01 ? 00:00:06 /opt/java/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/tomcat/endorsed -classpath /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat -Dcatalina.home=/opt/tomcat -Djava.io.tmpdir=/opt/tomcat/temp org.apache.catalina.startup.Bootstrap start
3.firewalldの設定
さて、これでtomcatのプロセスが起動するようになった訳だが、CentOS7の場合は通常であればfirewalledが動作しているため、このままではアクセス出来ない。
ファイアーウォール自体が不要な場合は、以下のコマンドでfirewalld自体を停止してしまう。
systemctl disable firewalld
systemctl stop firewalld
firewalldが動作している状態でtomcatを動作させる場合、まず以下のファイルを作成する。
vim /etc/firewalld/services/tomcat.xml
●/etc/firewalld/services/tomcat.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Tomcat (HTTP)</short>
<description>Tomcat HTTP Server.</description>
<port protocol="tcp" port="8080"/>
</service>
後は、firewalldにこのファイルを読み込ませ、サービスを再起動すればいい。
firewall-cmd --permanent --add-service=tomcat
systemctl restart firewalld
これで、firewalldの設定が完了した。
設定が無事追加されているかどうかは、以下のコマンドで確認する。
firewall-cmd --list-all
$ firewall-cmd --list-all
public (default, active)
interfaces: ens192
sources:
services: dhcpv6-client ssh tomcat
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
4.接続
さて、実際にtomcatが動作している事を確認してみよう。
インストール先のホストの8080番ポートに対し、ブラウザでアクセスを行う。
無事、アクセスできることを確認した。