2021/04/26

[備忘録] Centos 7 に JDK 8 とTomcat 9 を インストールする

今回は久々に 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 なのでポート開放(クラウドだとセキュリティグループ)されていれば繋がるかと思います。

image

以上、JDK と Tomcat インストールでした、久々だと細かい部分忘れてしまってますね。

Alibaba Cloud の Region 増えてた

  久々に Alibaba Cloud を覗いてみたら・・・ あ、なんかリージョン増えてるわ 昨年発表していたフィリピン(マニラ)リージョン、タイ(バンコク)リージョン、韓国(ソウル)リージョン が増えていたのでちょっと現状確認してみました。 フィリピン(マニラ)リージョンの場合...