Tomcat8をCentOS7へインストールする

CentOS7へTomcat8をインストールしていきます。

Java環境が必要となるのでJDKをインストールします。インストールが必要な場合は、 「JDK8をCentOS7へインストールする」参照。

Tomcatのインストール

はじめにTomcatを実行するユーザーを作成します。

# useradd -s /sbin/nologin tomcat

シェルを指定してログインできないユーザーとして作成します。

tomcatを次のサイトからダウンロードします。

ダウンロードしたファイルを/optディレクトリに展開します。

# cd ~/download
# curl -O http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/tomcat/tomcat-8/v8.0.32/bin/apache-tomcat-8.0.32.tar.gz
# tar -xzvf ~/apache-tomcat-8.0.32.tar.gz
# mv ~/apache-tomcat-8.0.32 /opt
# chown -R tomcat:tomcat /opt/apache-tomcat-8.0.32

Tomcatをサービスとして実行できるよう定義ファイルを/etc/systemd/system/tomcat.serviceへ作成します。

[Unit]
Description=Apache Tomcat 8
After=network.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/opt/apache-tomcat-8.0.32/tomcat.pid
RemainAfterExit=yes

ExecStart=/opt/apache-tomcat-8.0.32/bin/startup.sh
ExecStop=/opt/apache-tomcat-8.0.32/bin/shutdown.sh
ExecReStart=/opt/apache-tomcat-8.0.32/bin/shutdown.sh;/opt/apache-tomcat-8.0.32/bin/startup.sh

[Install]
WantedBy=multi-user.target

作成した定義ファイルの権限を 755 に変更します。

# chmod 755 /etc/systemd/system/tomcat.service

定義ファイルの作成が完了したら、「systemctl enable」 コマンドでサービスを有効にします。

# systemctl enable tomcat.service
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /etc/systemd/system/tomcat.service.

環境変数の設定

環境変数の設定方法はいろいろあるようですが、今回は専用サーバとして構築するため/etc/profile.d/へtomcat.shを作成し環境変数を設定します。

tomcat.shを次のように作成します。

export JAVA_HOME=/usr/java/default
export CATALINA_HOME=/opt/apache-tomcat-8.0.32
PATH=$PATH:$JAVA_HOME/bin

Firewalld の設定

TomcatのWebサーバ機能を使用してTomcatを使う場合、デフォルトでは8080ポートでのアクセスとなります。

CentOS7でのデフォルトの状態では、外部から8080ポートへはアクセスできないためFirewalldへ 設定を行う必要があります。

「/etc/firewalld/services/」ディレクトリにtomcat.xmlファイルを作成しFirewalldの設定を作成します。

<?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 --zone=public --add-service=tomcat --permanent
# firewall-cmd --reload

設定が反映されたかどうか次のコマンドで確認します。

# firewall-cmd --zone=public --list-services

Tomcatの実行と確認

次のコマンドでTomcatを起動します。

# systemctl start tomcat.service

ブラウザーから「http://アドレス:8080/」へアクセスし、表示されることを確認します。