一、升级前的准备工作
sudo systemctl stop tomcat
),备份旧版本目录(如/usr/share/tomcat
或/opt/tomcat
)及关键配置文件(conf/server.xml
、conf/context.xml
、webapps
中的应用程序、logs
日志文件)。可使用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
)。