Tomcat 9

CentOS 7にApache Tomcat 9 をインストールする手順

CentOS 7 にApacheTomcat 9 をインストールする手順の解説です。

前提条件

まずはバージョンの確認です。
CentOS 7の最新版が入ってます。
# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)

Javaをインストール

Tomcatの動作に必要なJavaをインストールしましょう。
インストール前にバージョンを確認してから、インストールを実施します。
また、tomcat起動用ユーザも作成しておきましょう。

# yum search openjdk
~~~
java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk.i686 : OpenJDK Runtime Environment 8
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment 8
java-1.8.0-openjdk-accessibility.i686 : OpenJDK accessibility connector
java-1.8.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
~~~
# yum -y install java-1.8.0-openjdk
# useradd -s /sbin/nologin tomcat

ちなみに、商用版を利用する場合以外は、
OpenJDKのインストールをお勧めします。
Oracle JDKは商用利用のみとなってしまったため、
今後無料で利用し続けるのは事実上不可能となりました。
[参考]2019年にJavaを利用している人は全員理解すべきことを説明してみる
無事にインストールが完了しました。

念の為、バージョンを確認しておきましょう。

# java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)

tarファイルをダウンロードし解凍

次にApache Tomcat 9 を公式サイトからダウンロードしてきます。
※記事執筆時点(2020/02/02)ではTomcat 9.0.30が最新でした。
ダウンロードした後は、解凍して任意のフォルダに移動しておきます。
私は、後でPATHを通しやすい場所に移動しました。

# cd /opt/
# wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/tomcat/tomcat-9/v9.0.30/bin/apache-tomcat-9.0.30.tar.gz
# tar zxvf apache-tomcat-9.0.30.tar.gz
# ls
apache-tomcat-9.0.30  apache-tomcat-9.0.30.tar.gz  rh
# mv apache-tomcat-9.0.30 /usr/local/src/
# ln -s /usr/local/src/apache-tomcat-9.0.30 /usr/local/src/tomcat

/tmp配下や/optなども使う人は多いみたいです。

シンボリックリンクを設定したら、
今度は環境変数への定義を行います。

/etc/profileに環境変数を定義

次回起動時から/etc/profileに追加した環境変数が自動的に読み込まれます。
JAVA環境をよく使うのであれば、設定を忘れないようにしましょう。
まずはJavaのフルパスを調べます。
簡単な調べ方の一つに以下が挙げられます。

# alternatives --config java
1 プログラムがあり 'java' を提供します。
  選択       コマンド
-----------------------------------------------
*+ 1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/bin/java)
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:

入力待ちの状態になりますが、そのままEnterを押せば良いです。
そして、カッコに出てきた長いパスを選択してコピーしましょう。
このコマンドは、複数バージョンのソフトをインストールしている場合に、
メインでどれを使うのか選べるものらしいです。
ここでは、

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/bin/java

をコピーしておきます。
次に、/etc/profileを開いて、
先ほどのパスおよびTomcatのライブラリパスを追記しましょう。

~~~
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/bin/java
CATALINA_HOME=/usr/local/src/tomcat/lib
CATALINA_BASE=$CATALINA_HOME
PATH=$JAVA_HOME/bin:$CATALINA_BASE/bin:$CATALINA_HOME/bin:$PATH
export PATH JAVA_HOME CATALINA_HOME CATALINA_BASE

この設定が終わったら、下記コマンドで環境変数を適用します。

source /etc/profile

systemctlに登録

Tomcatをダウンロードしてきて自分でインストールする場合は、
systemctlコマンドにて起動できるようにデーモン登録を行う必要があります。
まずは、systemdに登録するファイルを作りましょう。

[Unit]
Description=Apache Tomcat 9
After=network.target
[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/usr/local/src/tomcat/tomcat.pid
RemainAfterExit=yes
ExecStart=/usr/local/src/tomcat/bin/startup.sh
ExecStop=/usr/local/src/tomcat/bin/shutdown.sh
ExecReStart=/usr/local/src/tomcat/bin/shutdown.sh;/usr/local/src/tomcat/bin/startup.sh
[Install]
WantedBy=multi-user.target

ファイルが完成したら、ファイルのパーミッションを変更して
systemctlコマンドで起動できるようにします。

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

また、移動させたTomcatのディレクトリ全体に、
tomcatユーザの権限を設定しましょう。
※起動しない場合があるので、念の為

# chown -R tomcat:tomcat /usr/local/src/apache-tomcat-9.0.30/

起動確認

それでは、起動を確認してみましょう。

# systemctl start tomcat
# ss -ant
State       Recv-Q Send-Q                               Local Address:Port                                              Peer Address:Port
LISTEN      0      1                               [::ffff:127.0.0.1]:8005                                                      [::]:*
LISTEN      0      100                                           [::]:8009                                                      [::]:*
LISTEN      0      128                                           [::]:111                                                       [::]:*
LISTEN      0      100                                           [::]:8080                                                      [::]:*   

無事に起動していることが確認できましたね!
Tomcatのデフォルトポートは8005, 8009, 8080がオープンするようです。

なお、現在の設定はセキュリティ的にあまりよろしくないので、
別の記事でfirewallの設定などをご紹介します。

-Tomcat 9
-, ,

© 2020 サーバ構築.net Powered by AFFINGER5