Apache Tomcat

Java 21 + Tomcat 10 をインストール

Java 21のインストール

sudo dnf install java-21-openjdk-devel wget
[sooni@vm105 ~]$ sudo dnf install java-21-openjdk-devel wget
[sudo] sooni のパスワード:
メタデータの期限切れの最終確認: 3:59:50 前の 2025年04月26日 11時09分16秒 に実施しました。
パッケージ wget-1.21.1-8.el9_4.x86_64 は既にインストールされています。
依存関係が解決しました。
========================================================================================================================================
 パッケージ                                アーキテクチャー        バージョン                          リポジトリー               サイズ
========================================================================================================================================
インストール:
 java-21-openjdk-devel                     x86_64                  1:21.0.7.0.6-1.el9                  appstream                  5.0 M
依存関係のインストール:
 copy-jdk-configs                          noarch                  4.0-3.el9                           appstream                   27 k
 java-21-openjdk                           x86_64                  1:21.0.7.0.6-1.el9                  appstream                  429 k
 java-21-openjdk-headless                  x86_64                  1:21.0.7.0.6-1.el9                  appstream                   47 M
 javapackages-filesystem                   noarch                  6.0.0-7.el9_5                       appstream                  9.9 k
 lksctp-tools                              x86_64                  1.0.19-3.el9_4                      baseos                      96 k
 lua                                       x86_64                  5.4.4-4.el9                         appstream                  187 k
 lua-posix                                 x86_64                  35.0-8.el9                          appstream                  131 k
 mkfontscale                               x86_64                  1.2.1-3.el9                         appstream                   31 k
 ttmkfdir                                  x86_64                  3.0.9-65.el9                        appstream                   52 k
 tzdata-java                               noarch                  2025b-1.el9                         appstream                  145 k
 xorg-x11-fonts-Type1                      noarch                  7.5-33.el9                          appstream                  499 k

トランザクションの概要
========================================================================================================================================
インストール  12 パッケージ

ダウンロードサイズの合計: 54 M
インストール後のサイズ: 219 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/12): javapackages-filesystem-6.0.0-7.el9_5.noarch.rpm                                                1.9 kB/s | 9.9 kB     00:05
(2/12): xorg-x11-fonts-Type1-7.5-33.el9.noarch.rpm                                                       98 kB/s | 499 kB     00:05
(3/12): lksctp-tools-1.0.19-3.el9_4.x86_64.rpm                                                           14 kB/s |  96 kB     00:06
(4/12): copy-jdk-configs-4.0-3.el9.noarch.rpm                                                            11 kB/s |  27 kB     00:02
(5/12): lua-5.4.4-4.el9.x86_64.rpm                                                                       20 kB/s | 187 kB     00:09
(6/12): lua-posix-35.0-8.el9.x86_64.rpm                                                                  11 kB/s | 131 kB     00:12
(7/12): tzdata-java-2025b-1.el9.noarch.rpm                                                               10 kB/s | 145 kB     00:14
(8/12): mkfontscale-1.2.1-3.el9.x86_64.rpm                                                              8.6 kB/s |  31 kB     00:03
(9/12): ttmkfdir-3.0.9-65.el9.x86_64.rpm                                                                6.3 kB/s |  52 kB     00:08
[MIRROR] java-21-openjdk-devel-21.0.7.0.6-1.el9.x86_64.rpm: Curl error (28): Timeout was reached for https://mirror.plusline.net/rockylinux/9.5/AppStream/x86_64/os/Packages/j/java-21-openjdk-devel-21.0.7.0.6-1.el9.x86_64.rpm [Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds]
[MIRROR] java-21-openjdk-21.0.7.0.6-1.el9.x86_64.rpm: Curl error (28): Timeout was reached for https://mirror.plusline.net/rockylinux/9.5/AppStream/x86_64/os/Packages/j/java-21-openjdk-21.0.7.0.6-1.el9.x86_64.rpm [Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds]
(10/12): java-21-openjdk-21.0.7.0.6-1.el9.x86_64.rpm                                                     11 kB/s | 429 kB     00:40
(11/12): java-21-openjdk-devel-21.0.7.0.6-1.el9.x86_64.rpm                                               71 kB/s | 5.0 MB     01:11
(12/12): java-21-openjdk-headless-21.0.7.0.6-1.el9.x86_64.rpm                                           390 kB/s |  47 MB     02:03
----------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                    374 kB/s |  54 MB     02:27
Rocky Linux 9 - BaseOS                                                                                  883 kB/s | 1.7 kB     00:00
GPG 鍵 0x350D275D をインポート中:
 Userid     : "Rocky Enterprise Software Foundation - Release key 2022 <releng@rockylinux.org>"
 Fingerprint: 21CB 256A E16F C54C 6E65 2949 702D 426D 350D 275D
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9
これでよろしいですか? [y/N]: y
鍵のインポートに成功しました
トランザクションを確認しています
トランザクションの確認に成功しました。
トランザクションをテストしています
トランザクションのテストに成功しました。
トランザクションを実行しています
  scriptletの実行中: copy-jdk-configs-4.0-3.el9.noarch                                                                              1/1
  scriptletの実行中: java-21-openjdk-headless-1:21.0.7.0.6-1.el9.x86_64                                                             1/1
  準備中           :                                                                                                                1/1
  インストール中   : mkfontscale-1.2.1-3.el9.x86_64                                                                                1/12
  インストール中   : ttmkfdir-3.0.9-65.el9.x86_64                                                                                  2/12
  インストール中   : xorg-x11-fonts-Type1-7.5-33.el9.noarch                                                                        3/12
  scriptletの実行中: xorg-x11-fonts-Type1-7.5-33.el9.noarch                                                                        3/12
  インストール中   : tzdata-java-2025b-1.el9.noarch                                                                                4/12
  インストール中   : lua-posix-35.0-8.el9.x86_64                                                                                   5/12
  インストール中   : lua-5.4.4-4.el9.x86_64                                                                                        6/12
  インストール中   : copy-jdk-configs-4.0-3.el9.noarch                                                                             7/12
  インストール中   : javapackages-filesystem-6.0.0-7.el9_5.noarch                                                                  8/12
  インストール中   : lksctp-tools-1.0.19-3.el9_4.x86_64                                                                            9/12
  インストール中   : java-21-openjdk-headless-1:21.0.7.0.6-1.el9.x86_64                                                           10/12
  scriptletの実行中: java-21-openjdk-headless-1:21.0.7.0.6-1.el9.x86_64                                                           10/12
  インストール中   : java-21-openjdk-1:21.0.7.0.6-1.el9.x86_64                                                                    11/12
  scriptletの実行中: java-21-openjdk-1:21.0.7.0.6-1.el9.x86_64                                                                    11/12
  インストール中   : java-21-openjdk-devel-1:21.0.7.0.6-1.el9.x86_64                                                              12/12
  scriptletの実行中: java-21-openjdk-devel-1:21.0.7.0.6-1.el9.x86_64                                                              12/12
  scriptletの実行中: copy-jdk-configs-4.0-3.el9.noarch                                                                            12/12
  scriptletの実行中: java-21-openjdk-headless-1:21.0.7.0.6-1.el9.x86_64                                                           12/12
  scriptletの実行中: java-21-openjdk-1:21.0.7.0.6-1.el9.x86_64                                                                    12/12
  scriptletの実行中: java-21-openjdk-devel-1:21.0.7.0.6-1.el9.x86_64                                                              12/12
  検証中           : lksctp-tools-1.0.19-3.el9_4.x86_64                                                                            1/12
  検証中           : javapackages-filesystem-6.0.0-7.el9_5.noarch                                                                  2/12
  検証中           : xorg-x11-fonts-Type1-7.5-33.el9.noarch                                                                        3/12
  検証中           : copy-jdk-configs-4.0-3.el9.noarch                                                                             4/12
  検証中           : lua-5.4.4-4.el9.x86_64                                                                                        5/12
  検証中           : lua-posix-35.0-8.el9.x86_64                                                                                   6/12
  検証中           : tzdata-java-2025b-1.el9.noarch                                                                                7/12
  検証中           : ttmkfdir-3.0.9-65.el9.x86_64                                                                                  8/12
  検証中           : mkfontscale-1.2.1-3.el9.x86_64                                                                                9/12
  検証中           : java-21-openjdk-headless-1:21.0.7.0.6-1.el9.x86_64                                                           10/12
  検証中           : java-21-openjdk-devel-1:21.0.7.0.6-1.el9.x86_64                                                              11/12
  検証中           : java-21-openjdk-1:21.0.7.0.6-1.el9.x86_64                                                                    12/12

インストール済み:
  copy-jdk-configs-4.0-3.el9.noarch                                 java-21-openjdk-1:21.0.7.0.6-1.el9.x86_64
  java-21-openjdk-devel-1:21.0.7.0.6-1.el9.x86_64                   java-21-openjdk-headless-1:21.0.7.0.6-1.el9.x86_64
  javapackages-filesystem-6.0.0-7.el9_5.noarch                      lksctp-tools-1.0.19-3.el9_4.x86_64
  lua-5.4.4-4.el9.x86_64                                            lua-posix-35.0-8.el9.x86_64
  mkfontscale-1.2.1-3.el9.x86_64                                    ttmkfdir-3.0.9-65.el9.x86_64
  tzdata-java-2025b-1.el9.noarch                                    xorg-x11-fonts-Type1-7.5-33.el9.noarch

完了しました!
[sooni@vm105 ~]$

Tomcatのインストール

tomcatのダウンロード
wget https://downloads.apache.org/tomcat/tomcat-10/v10.1.40/bin/apache-tomcat-10.1.40.tar.gz
[sooni@vm105 ~]$ wget https://downloads.apache.org/tomcat/tomcat-10/v10.1.40/bin/apache-tomcat-10.1.40.tar.gz
--2025-04-26 15:17:58--  https://downloads.apache.org/tomcat/tomcat-10/v10.1.40/bin/apache-tomcat-10.1.40.tar.gz
downloads.apache.org (downloads.apache.org) をDNSに問いあわせています... 88.99.208.237, 135.181.214.104, 2a01:4f8:10a:39da::2, ...
downloads.apache.org (downloads.apache.org)|88.99.208.237|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 13867286 (13M) [application/x-gzip]
`apache-tomcat-10.1.40.tar.gz' に保存中

apache-tomcat-10.1.40.tar.gz      100%[=============================================================>]  13.22M   301KB/s 時間 42s

2025-04-26 15:18:42 (325 KB/s) - `apache-tomcat-10.1.40.tar.gz' へ保存完了 [13867286/13867286]

[sooni@vm105 ~]$
/optの下にtomcatを解凍
-- /optの下にtomcatを解凍
sudo tar -xvf apache-tomcat-10.1.40.tar.gz -C /opt/

-- 
sudo mv /opt/apache-tomcat-10.1.40 /opt/tomcat

-- tomcatのグループ作成
sudo groupadd tomcat

-- tomcatユーザ作成
sudo useradd -M -s /sbin/nologin -g tomcat -d /opt/tomcat tomcat

-- 
sudo chown -R tomcat:tomcat /opt/tomcat
サービスファイルの作成

TomcatをLinux配下(systemd)でサービス管理するための設定ファイルです。

sudo vi /etc/systemd/system/tomcat.service

以下内容を記載する。解説はこちら

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-21-openjdk
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

立ち上げ

systemdにサービスファイルの変更を認識させる

sudo systemctl daemon-reload

Tomcatサービスを起動

先ほどサービス定義ファイルを「tomcat.service」という名前で作成したので tomcat となります

sudo systemctl start tomcat

システム起動時に自動的にTomcatサービスが起動するように設定

sudo systemctl enable tomcat
[sooni@vm105 opt]$ sudo systemctl enable tomcat
Created symlink /etc/systemd/system/multi-user.target.wants/tomcat.service → /etc/systemd/system/tomcat.service.
[sooni@vm105 opt]$

firewallの開放

-- 8080ポートを開放
sudo firewall-cmd --permanent --add-port=8080/tcp

-- リロードして直ぐに反映
sudo firewall-cmd --reload

管理コンソールを外からも利用できるように

sudo vi /opt/tomcat/webapps/manager/META-INF/context.xml

以下がデフォルトの状態

<Context antiResourceLocking="false" privileged="true" >
  <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                   sameSiteCookies="strict" />
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

以下のように書き換え

<Context antiResourceLocking="false" privileged="true" >
  <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                   sameSiteCookies="strict" />
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="192\.168\.56\.\d+" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

ブラウザから操作できるユーザを定義

sudo  vi /opt/tomcat/conf/tomcat-users.xml
  <role rolename="manager-gui"/>
  <user username="admin" password="admin-password" roles="manager-gui"/>

デフォルトで取得できるアクセスログパターンを変更する

Elasticsearch+kibanaまで連携したいのでデフォルトの設定を少し変更ます。

一通り設定完了したのでサーバ再起動

-- サーバ再起動
sudo systemctl restart tomcat

スポンサーリンク
タイトルとURLをコピーしました