
下載檔案
curl -O https://downloads.apache.org/tomcat/tomcat-9/v9.0.39/bin/apache-tomcat-9.0.39.tar.gz
解壓縮
tar zxvf apache-tomcat-9.0.39.tar.gz
將檔案移動並更改名稱
mv apache-tomcat-9.0.39 /usr/libexec/tomcat9
新增使用者並設定相關權限
useradd -M -d /usr/libexec/tomcat9 tomcat
chown -R tomcat. /usr/libexec/tomcat9
建立設定檔,讓tomcat可使用指令啟動服務
vi /usr/lib/systemd/system/tomcat9.service
[Unit]
Description=Apache Tomcat 9
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/libexec/tomcat9/bin/startup.sh
ExecStop=/usr/libexec/tomcat9/bin/shutdown.sh
RemainAfterExit=yes
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target
因我的JDK是使用SDKMAN安裝的,所以在使用時,因tomcat官網的Script檔案設定會抓不到JRE,所以必須自己指定路徑

修改檔案(請依照安裝路徑再稍微修改指令)
vi /usr/libexec/tomcat9/bin/catalina.sh

export JAVA_HOME=/usr/local/sdkman/candidates/java/8.0.265-zulu
export JRE_HOME=/usr/local/sdkman/candidates/java/8.0.265-zulu/jre
改好就可以用指令啟動服務
systemctl start tomcat9
設定開機啟動
systemctl enable tomcat9
=======更新=======
啟動後我遇到了無法訪問到tomcat的頁面,後來又想到是環境變數的問題…除了上述文件要改之外還需要修改另一個檔案
vi /usr/libexec/tomcat9/bin/setclasspath.sh

export JAVA_HOME=/usr/local/sdkman/candidates/java/8.0.265-zulu
export JRE_HOME=/usr/local/sdkman/candidates/java/8.0.265-zulu/jre
變更權限
chown -R tomcat:tomcat /usr/local/sdkman
重啟服務
systemctl restart tomcat9
開啟防火牆
firewall-cmd --zone=public --add-port=8080/tcp --permanent
重新載入防火牆規則
firewall-cmd --reload