../ |
---|
VPSサーバー(CentOS8.2)にJava11とTomcat9をインストールした。その手順をメモしておく。
java-11-openjdkのインストール
yumでインストールし、バージョンを確認しておく。11.0.9
であった。
$ yum install java-11-openjdk
$ yum install java-11-openjdk-devel
$ yum install java-11-openjdk-headless
$ java -version
openjdk version "11.0.9" 2020-10-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.9+11-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.9+11-LTS, mixed mode, sharing)
$ ls /usr/lib/jvm/
java-11-openjdk-11.0.9.11-0.el8_2.x86_64
JAVA_HOMEとJRE_HOMEの設定
環境変数JAVA_HOMEとJRE_HOMEに設定しておく。PATHにも追加しておくこと。/etc/profileの末尾に記述しておくと、各ユーザーに共通に適用される。変数はexportしておく。export するとenvで環境変数の一覧として確認できる。JRE_HOMEはJAVA_HOMEで代用してよい。
ちなみに、su - (ハイフンありでswitch user)したときには、各ユーザーのホームにある.bashrc(/home/xxx/.bashrc)が呼ばれ、そこから/etc/bashrcが呼ばれ、そこからさらに/etc/profileが呼ばれる。
$ vi /etc/profile
(末尾に追加)
export JAVA_HOME=/usr/lib/jvm/java
export JRE_HOME=$JAVA_HOME
export PATH=$JAVA_HOME/bin:$PATH
$ source /etc/profile
$ env
Tomcat9のインストール
Tomcat9をインストールして利用する。Tomcat用のユーザーもtomcat9
で登録しておく。
https://downloads.apache.org/tomcat/tomcat-9/ にアクセスして、最新バージョンを確認しておいた。現時点では v9.0.40
であった。ダウンロードしてインストールする。インストール先は、/opt/tomcat9
とする。ネット情報では、/usr/localや/usr/libexecなどにインストールする方もあるようだが、私は、/opt が短いし、他のものと混在しにくいので気に入っている。
$ su -
$ useradd -s /sbin/nologin tomcat9 # tomcat9ユーザーを作成
$ cd Downloads
$ wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.40//bin/apache-tomcat-9.0.40.tar.gz
$ tar zxvf apache-tomcat-9.0.40.tar.gz
$ mv apache-tomcat-9.0.40 /opt/tomcat9
$ chown -R tomcat9:tomcat9 /opt/tomcat9
$ ln -s /opt/tomcat9/ /usr/local/tomcat9 # リンクしておく
CATALINA_HOMEの設定
/etc/profileの末尾にCATALINA_HOMEを追記する。前述のJAVA_HOME,JRE_HOMEに続けて、CATALINA_HOME,CATALINA_BASEを記述する。exportしておくこと。
$ vi /etc/profile
(末尾に追加)
export JAVA_HOME=/usr/lib/jvm/java
export JRE_HOME=$JAVA_HOME
export CATALINA_HOME=/opt/tomcat9
export CATALINA_BASE=$CATALINA_HOME
export PATH=$CATALINA_HOME/bin:$JAVA_HOME/bin:$PATH
$ source /etc/profile
そして、version.sh を実行して、JRE_HOME,CATALINA_HOMEが適切に設定されているかを確認しておく。JRE_HOMEとCATALINA_HOMEがexportされていないと、別の場所が参照されてしまうので、注意のこと。
$ /opt/tomcat9/bin/version.sh
Using CATALINA_BASE: /opt/tomcat9
Using CATALINA_HOME: /opt/tomcat9
Using CATALINA_TMPDIR: /opt/tomcat9/temp
Using JRE_HOME: /usr/lib/jvm/java
Using CLASSPATH: /opt/tomcat9/bin/bootstrap.jar:/opt/tomcat9/bin/tomcat-juli.jar
Using CATALINA_OPTS:
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
Server version: Apache Tomcat/9.0.40
Server built: Nov 12 2020 15:35:02 UTC
Server number: 9.0.40.0
OS Name: Linux
OS Version: 4.18.0-193.28.1.el8_2.x86_64
Architecture: amd64
JVM Version: 11.0.9+11-LTS
JVM Vendor: Red Hat, Inc.
JVM VersionがJava11に切り替わっていないない場合がある。例えばJava1.8だったりする。その場合は、alternatives を実行してJVM を切り替えておく。それからversion.shを再実行すること。
# alternatives --config java
tomcat9.serviceの登録と起動
tomcat9.serviceを新規に作成する。
$ vi /etc/systemd/system/tomcat9.service
[Unit]
Description=Apache Tomcat 9
After=network.target
[Service]
Type=forking
User=tomcat9
Group=tomcat9
ExecStart=/opt/tomcat9/bin/startup.sh
ExecStop=/opt/tomcat9/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
tomcat9.serviceを起動する。また、OSの起動時に自動で開始されるように設定しておく。
$ systemctl enable tomcat9
$ systemctl start tomcat9
$ systemctl status tomcat9
● tomcat9.service - Apache Tomcat 9
Loaded: loaded (/etc/systemd/system/tomcat9.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-11-28 15:41:05 JST; 7s ago
Process: 98210 ExecStart=/opt/tomcat9/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 98224 (java)
Tasks: 35 (limit: 24989)
Memory: 127.9M
ブラウザからの確認
GNOMEデスクトップ上でブラウザからURLを指定してアクセスしてみる。ポートは8080である。http://localhost:8080/ または http://127.0.0.1:8080/ でアクセスして猫ロゴが出ればOKだ。GNOMEにはFireFoxがプリインストールされている。
Firewallの設定と外部からの接続確認
外部のブラウザからIPアドレスやドメイン名を指定してアクセスできるようにするには、以下のようにFirewallの設定をする。tomcatのサービスは未登録(/etc/servicesにtomcatはない)なので、8080/tcpのポートを直接追加する。
$ firewall-cmd --zone=public --add-port=8080/tcp --permanent
$ firewall-cmd --reload
$ firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client http mysql ssh vnc-server
ports: 8080/tcp
protocols:
これにより、http://157.xxx.xxx.xxx:8080/ や http://xxx.com:8080/ でアクセスできる。猫ロゴが出ればOKだ。この時点では、:8080
のポートはまだ省略はできない。
Tomcat Webマネージャを利用するには
ブラウザからTomcat Webマネージャを利用できるように設定しておきたい。アカウントadminを以下のように登録し、Tomcatサービスを再起動する。
$ vi ${CATALINA_HOME}/conf/tomcat-users.xml
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="***" roles="admin-gui,manager-gui"/>
$ systemctl restart tomcat9
GNOMEデスクトップからFireFoxなどのブラウザで以下のURLにアクセスして、admin/*** アカウントでログインできることを確認しておく。
- http://localhost:8080/manager/status
- http://localhost:8080/manager/html
- http://localhost:8080/host-manager
しかし、この時点では外部のブラウザからIPアドレスやドメインを指定してアクセスすることはできない。特定のPCからアクセスできるようにするには、以下のようにmanagerとhost-managerのそれぞれのcontext.xmlを編集して、自身のPCのIPアドレス(以下では、xxx.xxx.xxx.\d+としている)を追加する必要がある。自身のPCのIPアドレスは、https://www.cman.jp/network/support/go_access.cgi に問い合わせると即答してくれる。
$ cd ${CATALINA_HOME}/webapps/manager/META-INF/
$ cp -p context.xml context.xml.original
$ vi context.xml
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
↓
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|xxx.xxx.xxx.\d+" />
$ cd ${CATALINA_HOME}/webapps/host-manager/META-INF/
$ cp -p context.xml context.xml.original
$ vi context.xml
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
↓
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|xxx.xxx.xxx.\d+" />
以上
../ |
---|