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

CentOS 7の最新版が入ってます。
1 2 |
# cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core) |
Javaをインストール
Tomcatの動作に必要なJavaをインストールしましょう。
インストール前にバージョンを確認してから、インストールを実施します。
また、tomcat起動用ユーザも作成しておきましょう。
1 2 3 4 5 6 7 8 9 10 |
# 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を利用している人は全員理解すべきことを説明してみる
無事にインストールが完了しました。

1 2 3 4 |
# 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を通しやすい場所に移動しました。
1 2 3 4 5 6 7 |
# 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 |

シンボリックリンクを設定したら、
今度は環境変数への定義を行います。
/etc/profileに環境変数を定義
次回起動時から/etc/profileに追加した環境変数が自動的に読み込まれます。
JAVA環境をよく使うのであれば、設定を忘れないようにしましょう。
まずはJavaのフルパスを調べます。
簡単な調べ方の一つに以下が挙げられます。
1 2 3 4 5 6 |
# 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を押せば良いです。
そして、カッコに出てきた長いパスを選択してコピーしましょう。
このコマンドは、複数バージョンのソフトをインストールしている場合に、
メインでどれを使うのか選べるものらしいです。
ここでは、
1 |
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/bin/java |
をコピーしておきます。
次に、/etc/profileを開いて、
先ほどのパスおよびTomcatのライブラリパスを追記しましょう。
1 2 3 4 5 6 |
~~~ 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 |
この設定が終わったら、下記コマンドで環境変数を適用します。
1 |
source /etc/profile |
systemctlに登録
Tomcatをダウンロードしてきて自分でインストールする場合は、
systemctlコマンドにて起動できるようにデーモン登録を行う必要があります。
まずは、systemdに登録するファイルを作りましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[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コマンドで起動できるようにします。
1 2 3 4 |
# 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ユーザの権限を設定しましょう。
※起動しない場合があるので、念の為
1 |
# chown -R tomcat:tomcat /usr/local/src/apache-tomcat-9.0.30/ |
起動確認
それでは、起動を確認してみましょう。
1 2 3 4 5 6 7 |
# 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の設定などをご紹介します。