Linux环境下Apache Tomcat 9.0.56升级至9.0.105的完整操作步骤求助
Linux环境下Apache Tomcat 9.0.56升级至9.0.105的完整操作步骤求助
兄弟别慌,我刚帮好几个新手搞定过同样的Tomcat小版本升级,全程给你写得明明白白,RHEL 8.10上完全适用,而且把备份和回滚方案放得很靠前,绝对给你留好后路,跟着一步步来就行:
一、前期准备工作
- 切换到有sudo权限的用户(或者直接root,不过更推荐用sudo),避免权限卡壳:
sudo su - - 确认现有Tomcat的运行状态和安装路径:
# 查看Tomcat进程,找到安装路径 ps aux | grep catalina # 或者如果是systemd管理的,直接看状态 systemctl status tomcat - 检查JDK版本(Tomcat 9要求JDK 8及以上,RHEL 8.10自带的OpenJDK完全兼容):
java -version
二、重中之重:全量备份现有环境
因为你是第一次操作,备份必须做足,出问题随时能回滚:
- 先停止正在运行的Tomcat:
# systemd管理的情况 systemctl stop tomcat # 或者直接用Tomcat自带的停止脚本(替换成你的旧Tomcat路径) /opt/tomcat9/bin/shutdown.sh - 备份整个旧Tomcat安装目录(带日期后缀,方便区分):
# 替换成你的旧Tomcat实际路径 tar -czf /opt/tomcat_9.0.56_backup_$(date +%Y%m%d).tar.gz /opt/tomcat9 - 单独备份关键目录(避免解压整个大备份包找文件):
# 备份配置文件 cp -r /opt/tomcat9/conf /opt/tomcat9_conf_backup_$(date +%Y%m%d) # 备份你的应用程序 cp -r /opt/tomcat9/webapps /opt/tomcat9_webapps_backup_$(date +%Y%m%d) # 备份自定义JVM配置脚本(如果有的话) cp /opt/tomcat9/bin/setenv.sh /opt/tomcat9_setenv_backup_$(date +%Y%m%d) 2>/dev/null
三、下载并部署新版Tomcat 9.0.105
- 把提前准备好的Tomcat 9.0.105的tar.gz包传到服务器(比如
/opt目录),或者直接用wget下载(到Apache官方归档页面找到对应版本的tar.gz链接即可):# 示例wget命令(替换成你获取到的正确链接) wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.105/bin/apache-tomcat-9.0.105.tar.gz -P /opt/ - 解压新版Tomcat到指定目录:
tar -xzf /opt/apache-tomcat-9.0.105.tar.gz -C /opt/ - 重命名解压后的目录,方便管理:
mv /opt/apache-tomcat-9.0.105 /opt/tomcat9_new - 配置权限,和旧Tomcat保持一致(比如旧Tomcat用tomcat用户运行):
chown -R tomcat:tomcat /opt/tomcat9_new chmod +x /opt/tomcat9_new/bin/*.sh
四、迁移配置与应用到新版Tomcat
小版本升级兼容性很好,但不要直接覆盖整个conf目录,避免丢失新版的默认优化配置:
1. 迁移核心配置文件
# 迁移server.xml(端口、连接器、引擎配置),建议先对比差异再复制 diff /opt/tomcat9/conf/server.xml /opt/tomcat9_new/conf/server.xml # 确认差异后复制自定义配置 cp /opt/tomcat9/conf/server.xml /opt/tomcat9_new/conf/ # 迁移tomcat-users.xml(管理控制台用户) cp /opt/tomcat9/conf/tomcat-users.xml /opt/tomcat9_new/conf/ # 迁移context.xml(数据源、资源链接配置) cp /opt/tomcat9/conf/context.xml /opt/tomcat9_new/conf/ # 迁移web.xml(自定义MIME类型、错误页面) diff /opt/tomcat9/conf/web.xml /opt/tomcat9_new/conf/web.xml cp /opt/tomcat9/conf/web.xml /opt/tomcat9_new/conf/
2. 迁移应用与依赖
# 复制你的应用到新版webapps cp -r /opt/tomcat9_webapps_backup_$(date +%Y%m%d)/* /opt/tomcat9_new/webapps/ # 迁移自定义lib包(如果有自己添加的依赖jar),用-n避免覆盖新版自带jar cp -n /opt/tomcat9/lib/*.jar /opt/tomcat9_new/lib/ # 迁移setenv.sh(JVM堆内存、系统属性配置) cp /opt/tomcat9_setenv_backup_$(date +%Y%m%d) /opt/tomcat9_new/bin/setenv.sh 2>/dev/null
五、测试新版Tomcat与应用
- 启动新版Tomcat进行测试:
# 用tomcat用户启动,避免权限问题 su - tomcat -c "/opt/tomcat9_new/bin/startup.sh" - 查看启动日志,确认无报错:
tail -f /opt/tomcat9_new/logs/catalina.out - 验证内容:
- 访问Tomcat首页,确认版本显示为9.0.105
- 登录管理控制台,检查应用是否正常部署
- 测试你的应用核心功能(比如登录、数据查询、提交等),确保和升级前一致
六、正式切换到新版Tomcat
测试没问题后,正式替换旧版本:
# 停止测试中的新版Tomcat su - tomcat -c "/opt/tomcat9_new/bin/shutdown.sh" # 重命名旧Tomcat目录 mv /opt/tomcat9 /opt/tomcat9_old # 把新版Tomcat改成旧目录名,兼容原有systemd配置或脚本 mv /opt/tomcat9_new /opt/tomcat9 # 如果用systemd管理,重新加载配置并启动 systemctl daemon-reload systemctl start tomcat systemctl status tomcat
- 再次全面测试应用功能,确认服务稳定运行。
七、紧急回滚方案(万一出问题)
如果升级后出现异常,立即执行以下步骤回滚到旧版本:
# 停止当前Tomcat服务 systemctl stop tomcat # 重命名新版Tomcat目录 mv /opt/tomcat9 /opt/tomcat9_failed # 恢复旧Tomcat目录 mv /opt/tomcat9_old /opt/tomcat9 # 启动旧版本Tomcat systemctl start tomcat systemctl status tomcat
- 回滚后检查应用是否正常,排查问题后再重新尝试升级。
最后给你的新手提示
- 升级前一定要在测试环境先走一遍全流程,不要直接碰生产环境
- 永远不要用root用户运行Tomcat,专门创建tomcat用户更安全
- 小版本升级(9.x到9.x)兼容性极高,但还是要仔细对比配置文件的差异,避免遗漏自定义配置
- 保留备份包至少到确认升级稳定运行3天后再考虑删除




