今回は久々に Tomcat
インストールしたら色々と忘れていたので初心に戻って手順を残してみます。
そういえば、もう2年くらいJavaとかさわってなかったな・・・
環境は Alibaba Cloud で CentOS 7.9 を使いました。
JDK はとりあえず OpenJDK の1.8です。
11はとりあえず置いておいて、17でたらそっちは改めてやろうかな。
あと、AlibabaのJavaとかも使ってみたい気持ちはあるの
JDK のインストール
yum で入るので yum を使っていきます。
AdoptOpenJDK とか使う場合は この辺 を参考にyum repo を追加してご利用ください。
# sudo yum install java-1.8.0-openjdk-devel
# java -version
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-b08)
OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)
Tomcat の取得
Tomcat は yum からだと少し古いので公式から最新版を取得します。
Tomcat 10 も出ていますが、今回は Tomcat 9 を使います。
# wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.45/bin/apache-tomcat-9.0.45.tar.gz
--2021-04-20 10:22:25-- https://downloads.apache.org/tomcat/tomcat-9/v9.0.45/bin/apache-tomcat-9.0.45.tar.gz
downloads.apache.org (downloads.apache.org) をDNSに問いあわせています... 88.99.95.219, 2a01:4f8:10a:201a::2
downloads.apache.org (downloads.apache.org)|88.99.95.219|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 11486964 (11M) [application/x-gzip]
`apache-tomcat-9.0.45.tar.gz' に保存中
100%[==================================================================>] 11,486,964 3.16MB/s 時間 4.0s
2021-04-20 10:22:30 (2.73 MB/s) - `apache-tomcat-9.0.45.tar.gz' へ保存完了 [11486964/11486964]
取得した tar.gz を /opt に展開します。
# tar -zxvf apache-tomcat-9.0.45.tar.gz -C /opt
apache-tomcat-9.0.45/conf/
apache-tomcat-9.0.45/conf/catalina.policy
apache-tomcat-9.0.45/conf/catalina.properties
apache-tomcat-9.0.45/conf/context.xml
apache-tomcat-9.0.45/conf/jaspic-providers.xml
apache-tomcat-9.0.45/conf/jaspic-providers.xsd
apache-tomcat-9.0.45/conf/logging.properties
apache-tomcat-9.0.45/conf/server.xml
apache-tomcat-9.0.45/conf/tomcat-users.xml
apache-tomcat-9.0.45/conf/tomcat-users.xsd
apache-tomcat-9.0.45/conf/web.xml
apache-tomcat-9.0.45/bin/
apache-tomcat-9.0.45/lib/
apache-tomcat-9.0.45/logs/
apache-tomcat-9.0.45/temp/
apache-tomcat-9.0.45/webapps/
<以下略>
/opt/tomcat にシンボリックリンクを作ります。
バージョンアップ見越しての設定なので検証用なら無くても問題はないですが・・・お作法的な感じ
# sudo ln -s apache-tomcat-9.0.45 /opt/tomcat
# ls -la
合計 11232
drwxr-xr-x. 3 root root 4096 4月 20 10:23 .
dr-xr-xr-x. 18 root root 4096 4月 19 10:33 ..
drwxr-xr-x 9 root root 4096 4月 20 10:22 apache-tomcat-9.0.45
-rw-r--r-- 1 root root 11486964 3月 30 18:46 apache-tomcat-9.0.45.tar.gz
lrwxrwxrwx 1 root root 20 4月 20 10:23 tomcat -> apache-tomcat-9.0.45
Tomcat User の作成
Tomcat の実行ユーザーを作ります。
# sudo groupadd -g 53 tomcat
# sudo useradd -M -d /opt/tomcat -s /sbin/nologin -c "Apache Tomcat" -g 53 -G 53 -u 53 tomcat
# sudo id tomcat
uid=53(tomcat) gid=53(tomcat) groups=53(tomcat)
# sudo cat /etc/passwd | grep tomcat
tomcat:x:53:53:Apache Tomcat:/opt/tomcat:/sbin/nologin
tomcat ディレクトリのオーナーを変更します。
# sudo chown -R tomcat:tomcat /opt/apache-tomcat-9.0.45
# sudo ls -la /opt
合計 11232
drwxr-xr-x. 3 root root 4096 4月 20 10:23 .
dr-xr-xr-x. 18 root root 4096 4月 19 10:33 ..
drwxr-xr-x 9 tomcat tomcat 4096 4月 21 15:52 apache-tomcat-9.0.45
-rw-r--r-- 1 root root 11486964 3月 30 18:46 apache-tomcat-9.0.45.tar.gz
lrwxrwxrwx 1 tomcat tomcat 20 4月 20 10:23 tomcat -> apache-tomcat-9.0.45
systemd のユニットファイルの作成
定義ファイルを作成していきます。
# sudo vi /etc/systemd/system/tomcat.service
内容はざっくりこんな感じかな・・・Environment
とかは各自の設定に調整を
[Unit]
Description=Apache Tomcat 9
After=syslog.target network.target
[Service]
User=tomcat
Group=tomcat
Type=forking
RemainAfterExit=yes
Environment=CATALINA_PID=/var/run/tomcat.pid
Environment=JAVA_HOME=/usr/lib/jvm/jre
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx512M -XX:MaxMetaspaceSize=128M -server -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -Djava.awt.headless=true'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
サービスの起動をしていきます。
# sudo systemctl daemon-reload
# sudo systemctl start tomcat
# sudo systemctl status tomcat -l
● tomcat.service - Apache Tomcat 9
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: disabled)
Active: active (running) since 水 2021-04-21 15:52:13 CST; 5s ago
Process: 15638 ExecStop=/opt/tomcat/bin/shutdown.sh (code=exited, status=0/SUCCESS)
Process: 15665 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 15672 (java)
CGroup: /system.slice/tomcat.service
└─15672 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Xms512M -Xmx512M -XX:MaxMetaspaceSize=128M -server -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -Djava.awt.headless=true -Dignore.endorsed.dirs= -classpath /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat -Dcatalina.home=/opt/tomcat -Djava.io.tmpdir=/opt/tomcat/temp org.apache.catalina.startup.Bootstrap start
4月 21 15:52:13 guacamole2 systemd[1]: Starting Apache Tomcat 9...
4月 21 15:52:13 guacamole2 systemd[1]: Started Apache Tomcat 9.
上記の PID で空けているポート確認してみます。
# ss -tanp |grep 15672
LISTEN 0 1 [::ffff:127.0.0.1]:8005 [::]:* users:(("java",pid=15672,fd=69))
LISTEN 0 100 [::]:8080 [::]:* users:(("java",pid=15672,fd=57))
8005, 8080 ポートで待ち受けているので Tomcat
もちゃんと起動していそうですね。
また、ブラウザからアクセスできる状態であれば以下の様な画面が確認できるはずです。
※何もしていなければ http://IPアドレス:8080 なのでポート開放(クラウドだとセキュリティグループ)されていれば繋がるかと思います。
以上、JDK と Tomcat インストールでした、久々だと細かい部分忘れてしまってますね。