もなかアイスの試食品

「とりあえずやってみたい」そんな気持ちが先走りすぎて挫折が多い私のメモ書きみたいなものです.

CentOS6にTomcat8.5をインストール&自動起動設定

はじめに

とあるプロジェクトで、Java(Spring Boot)でWEBアプリケーションを作ることにした

開発中はWindows内の統合開発環境の組み込みサーバで、アプリの動作確認できる

しかし本運用は多分CentOSで、今までApachePHPの環境構築しかやったことがなかったため、デプロイの方法とか全然わからない・・・

なので色々調査・検討のためCentOSTomcatサーバをインストールしてみた

環境

Java8のインストール

以下のサイトにアクセスしてURLを取得

Java SE Development Kit 8 - Downloads

wgetrpmをダウンロードする。(「Accept License Agreement」が選ばれていないとダウンロードできないので色々オプションを追加している)

# wget --no-check-certificate --no-cookies - --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm

# rpm -Uvh jdk-8u131-linux-x64.rpm

以下のコマンドでインストールされたか確認

# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

Tomcatのインストール

Tomcatのインストール先を「/opt/tomcat」にするためディレクトリを作成

# mkdir /opt/tomcat

以下のページにアクセスして、ダウンロードするファイルのURLを取得

Apache Tomcat® - Apache Tomcat 8 Software Downloads

Javarpmと同じようにwgetTomcatをダウンロードしアーカイブを展開する

# cd /opt/tomcat
# wget http://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.16/bin/apache-tomcat-8.5.16.tar.gz
# tar xvf apache-tomcat-8.5.16.tar.gz

環境変数の追加

Tomcatに必要な環境変数が読み込まれるように「/etc/profile.d/tomcat.sh」を新規作成する

「/etc/profile.d/tomcat.sh」に以下を追記する

JRE_HOME=/usr/java/default
CATALINA_HOME=/opt/tomcat/apache-tomcat-8.5.16
export JRE_HOME CATALINA_HOME

現在のターミナルに環境変数を適用

# . /etc/profile

Tomcat起動

以下のコマンドでTomcatを起動する

# /opt/tomcat/apache-tomcat-8.5.16/bin/startup.sh

外部からアクセスするためiptablesの修正。以下をsshの設定あたりに追加

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

ブラウザからアクセスするとTomcatのページが表示される

f:id:monakaice88:20170630055507p:plain

ちなみにTomcatの停止は以下のコマンド

# /opt/tomcat/apache-tomcat-8.5.16/bin/shutdown.sh

起動スクリプトの作成

今のままだとTomcat自動起動してくれない

なので、以下のサイトをパクって参考に起動スクリプトを作成

d.hatena.ne.jp

「/etc/init.d/tomcat」を新規作成

# vim /etc/init.d/tomcat

スクリプトの中身

#!/bin/sh
#
# chkconfig: 2345 85 15
# description: My Tomcat auto start
#

. /etc/rc.d/init.d/functions
. /etc/profile.d/tomcat.sh

case "$1" in
        start)
                echo -n "Tomcat starting..."
                ${CATALINA_HOME}/bin/startup.sh
                ;;
        stop)
                echo -n "Tomcat stopping..."
                ${CATALINA_HOME}/bin/shutdown.sh
                ;;
        restart)
                $0 stop
                $0 start
                ;;
        *)
                echo "Usage: $0 {start|stop|restart}"
                exit 1
esac
exit 0

起動スクリプト自動起動に登録

# chmod 755 /etc/init.d/tomcat
# chkconfig --add tomcat
# chkconfig --list tomcat(起動するランタイムの確認)

CentOSを再起動しても8080にアクセスするとTomcatのページが表示される

おわりに

とりあえず今回はTomcatのインストール・自動起動の設定までやった

本運用のためには他にもポート番号の変更・logrotate等の設定等やらないといけないと思うが、また別の機会に実施しようと思う