一、升级前准备
备份现有环境
备份Tomcat安装目录(如/usr/local/apache-tomcat或/opt/tomcat)、web应用(webapps目录)、配置文件(conf/server.xml、conf/web.xml、conf/tomcat-users.xml等)及数据库(若应用依赖)。可使用cp -r命令创建备份目录,例如:
sudo cp -r /usr/local/apache-tomcat /usr/local/apache-tomcat-backup
检查当前版本与依赖
确认当前Tomcat版本(通过/path/to/tomcat/bin/version.sh)和JDK版本(java -version)。Tomcat与JDK需满足以下兼容性(2025年最新):
javax.*改为jakarta.*)二、下载与解压新版本
下载新版本Tomcat
访问Apache Tomcat官网(tomcat.apache.org),选择对应版本(如Tomcat 10.1.20),下载核心程序包(apache-tomcat-10.1.20.tar.gz)。可使用wget命令:
cd /tmp
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.20/bin/apache-tomcat-10.1.20.tar.gz
解压并安装
将下载的压缩包解压至目标目录(如/usr/local),并重命名目录:
sudo tar -zxvf apache-tomcat-10.1.20.tar.gz -C /usr/local/
sudo mv /usr/local/apache-tomcat-10.1.20 /usr/local/tomcat
三、迁移配置与应用
复制自定义配置
将旧版本Tomcat中的自定义配置文件复制到新版本对应目录(如server.xml、web.xml、tomcat-users.xml),避免覆盖新版本的默认配置:
sudo cp /usr/local/apache-tomcat-backup/conf/server.xml /usr/local/tomcat/conf/
sudo cp /usr/local/apache-tomcat-backup/conf/web.xml /usr/local/tomcat/conf/
sudo cp /usr/local/apache-tomcat-backup/conf/tomcat-users.xml /usr/local/tomcat/conf/
迁移Web应用
将旧版本的webapps目录下的应用(war包或解压后的项目)复制到新版本的webapps目录。若应用无需修改,可直接覆盖;若需更新,建议先备份旧应用:
sudo cp -r /usr/local/apache-tomcat-backup/webapps/* /usr/local/tomcat/webapps/
处理兼容性问题
javax.*包路径改为jakarta.*(可使用官方迁移工具tomcat-jakartaee-migration);server.xml中的AJPConnector配置。四、启动与验证
启动Tomcat服务
进入新版本Tomcat的bin目录,执行startup.sh启动:
cd /usr/local/tomcat/bin
./startup.sh
检查启动日志
查看logs/catalina.out日志文件,确认无ERROR或SEVERE级别的错误(如类加载失败、端口冲突):
tail -f /usr/local/tomcat/logs/catalina.out
验证应用功能
http://服务器IP:8080),确认页面正常显示;manager应用,检查http://服务器IP:8080/manager是否能正常访问(需确认tomcat-users.xml中的角色权限)。五、清理与优化(可选)
删除旧版本
确认升级成功后,删除旧版本Tomcat目录(如/usr/local/apache-tomcat-backup)和下载的安装包,释放磁盘空间:
sudo rm -rf /usr/local/apache-tomcat-backup
sudo rm -rf /tmp/apache-tomcat-10.1.20.tar.gz
优化启动脚本
若使用systemd管理服务,可编辑/etc/systemd/system/tomcat.service文件(若未创建,参考之前步骤),添加环境变量(如JAVA_HOME)并设置开机自启:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
Environment=CATALINA_PID=/usr/local/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/usr/local/tomcat
Environment=CATALINA_BASE=/usr/local/tomcat
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
然后执行以下命令使配置生效:
sudo systemctl daemon-reload
sudo systemctl enable tomcat
sudo systemctl restart tomcat
六、回滚方案(如有问题) 若升级后出现严重问题(如应用无法启动、核心功能失效),可快速回滚至旧版本:
/usr/local/tomcat);mv /usr/local/apache-tomcat-backup /usr/local/apache-tomcat);./startup.sh)。