一、升級前的準備工作
sudo systemctl stop tomcat
),備份舊版本目錄(如/usr/share/tomcat
或/opt/tomcat
)及關鍵配置文件(conf/server.xml
、conf/context.xml
、webapps
中的應用程序、logs
日志文件)??墒褂?code>sudo cp -r /usr/share/tomcat /usr/share/tomcat-backup命令完成備份。java -version
查看Java版本,若不符合需升級JDK(如sudo yum install java-11-openjdk-devel
)。https://tomcat.apache.org/download-xx.cgi
,xx為目標版本,如9.0、10.1),下載對應版本的tar.gz
壓縮包(如apache-tomcat-10.1.11.tar.gz
),推薦使用wget命令(wget https://archive.apache.org/dist/tomcat/tomcat-10/v10.1.11/bin/apache-tomcat-10.1.11.tar.gz
)。二、具體升級步驟
systemctl
或腳本停止運行中的Tomcat,避免升級過程中出現文件沖突:sudo systemctl stop tomcat
# 或若使用腳本啟動
# sudo /opt/tomcat-old/bin/shutdown.sh
/usr/share/
或/opt/
),并重命名為統一名稱(如tomcat
):sudo tar xvf apache-tomcat-10.1.11.tar.gz -C /usr/share/
sudo mv /usr/share/apache-tomcat-10.1.11 /usr/share/tomcat
conf/
)、Web應用(webapps/
)、庫文件(lib/
)復制到新版本對應目錄,覆蓋新版本的默認配置:sudo cp -R /usr/share/tomcat-backup/conf/* /usr/share/tomcat/conf/
sudo cp -R /usr/share/tomcat-backup/webapps/* /usr/share/tomcat/webapps/
sudo cp -R /usr/share/tomcat-backup/lib/* /usr/share/tomcat/lib/
/etc/profile.d/tomcat.sh
文件,添加以下內容(替換為新版本路徑):export CATALINA_HOME=/usr/share/tomcat
export PATH=$PATH:$CATALINA_HOME/bin
使配置生效:source /etc/profile.d/tomcat.sh
。http://服務器IP:8080
確認新版本運行:sudo systemctl start tomcat
sudo systemctl status tomcat # 查看狀態(應顯示active(running))
或進入新版本bin目錄啟動:cd /usr/share/tomcat/bin
./startup.sh
三、升級后檢查與清理
logs/catalina.out
、logs/localhost.log
),確認無Unsupported major.minor version
(JDK版本不匹配)、ClassNotFoundException
(配置文件遷移遺漏)等錯誤。sudo rm -rf /usr/share/tomcat-backup
注意事項
jakarta.servlet
替代javax.servlet
,若舊應用依賴javax
包,需使用Apache提供的遷移工具(tomcat-jakartaee-migration
)轉換依賴。server.xml
中的端口(如8080改為80),需確保新端口未被其他服務占用,并開放防火墻(sudo firewall-cmd --add-port=80/tcp --permanent
;sudo firewall-cmd --reload
)。