一、升級前準備
$CATALINA_HOME/bin/version.sh
(如/usr/local/apache-tomcat/bin/version.sh
),輸出結果會明確顯示當前Tomcat版本號(如Apache Tomcat/9.0.62
),確認當前版本是升級的基礎。https://tomcat.apache.org/download-<version>.cgi
,如9.x版本對應download-90.cgi
),下載所需版本的二進制發行版(優先選擇tar.gz
格式,Linux系統兼容性更好)。使用wget
命令下載(例如wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.93/bin/apache-tomcat-9.0.93.tar.gz
)。mkdir -p /usr/local/tomcat-backup
(路徑可根據實際情況調整);cp -Rf $CATALINA_HOME/* /usr/local/tomcat-backup/
(如/usr/local/apache-tomcat/*
);conf/server.xml
、conf/web.xml
、conf/context.xml
、conf/tomcat-users.xml
等)、Web應用(webapps/
目錄下的.war
文件或解壓后的應用文件夾)、日志(logs/
目錄)及數據庫連接信息(如context.xml
中的JDBC配置)。systemctl
或service
管理),執行:systemctl stop tomcat
(或service tomcat stop
);startup.sh
啟動,進入$CATALINA_HOME/bin
目錄,執行:./shutdown.sh
;ps -ef | grep tomcat
,若無org.apache.catalina.startup.Bootstrap
進程則表示已停止。二、執行升級操作
mv $CATALINA_HOME /usr/local/apache-tomcat-old
),方便后續回滾。/usr/local/
),執行:tar -zxvf apache-tomcat-9.0.93.tar.gz -C /usr/local/
;
解壓后,將目錄重命名為標準名稱(如mv /usr/local/apache-tomcat-9.0.93 /usr/local/apache-tomcat
),保持路徑一致性。conf/
目錄內容復制到新Tomcat的conf/
目錄(cp -Rf /usr/local/tomcat-backup/conf/* /usr/local/apache-tomcat/conf/
);webapps/
目錄內容復制到新Tomcat的webapps/
目錄(cp -Rf /usr/local/tomcat-backup/webapps/* /usr/local/apache-tomcat/webapps/
);webapps/
目錄下的默認應用(如docs/
、examples/
、manager/
、host-manager/
),提升安全性(rm -rf /usr/local/apache-tomcat/webapps/{docs,examples,manager,host-manager}
)。bin/
目錄下的腳本添加可執行權限(chmod +x /usr/local/apache-tomcat/bin/*.sh
),避免啟動時出現“Permission denied”錯誤。bin/
目錄,執行:./startup.sh
;
查看啟動日志:tail -f ../logs/catalina.out
,確認無錯誤信息(如Server startup in [xxx] milliseconds
表示啟動成功)。三、升級后驗證
http://<服務器IP>:8080
(若端口未修改),若看到Tomcat默認歡迎頁面,說明基礎服務正常。http://<服務器IP>:8080/your-app
),驗證功能是否正常(如登錄、數據查詢、接口調用等)。logs/catalina.out
(啟動日志)、logs/localhost.<date>.log
(應用日志),確認無ERROR
或SEVERE
級別的錯誤信息。四、回滾方案(可選但必要) 若升級后出現無法解決的問題(如應用無法啟動、配置錯誤),可快速回滾到舊版本:
systemctl stop tomcat
(或./shutdown.sh
);rm -rf /usr/local/apache-tomcat
;mv /usr/local/apache-tomcat-old /usr/local/apache-tomcat
;./startup.sh
;五、注意事項
java -version
檢查當前Java版本,若不符合要求,需先升級Java。server.xml
中的<Connector>
參數),需對比新舊版本的conf/
目錄,手動合并自定義配置(如端口號、線程池設置、虛擬主機配置等),避免直接覆蓋導致配置丟失。javax.servlet
改為jakarta.servlet
,針對Tomcat 10及以上版本)。/usr/local/apache-tomcat-old
遷移到/usr/local/apache-tomcat
),需更新系統環境變量:
/etc/profile.d/tomcat.sh
(或~/.bashrc
),修改CATALINA_HOME
和CATALINA_BASE
的值(如export CATALINA_HOME=/usr/local/apache-tomcat
);source /etc/profile.d/tomcat.sh
使變量生效。