You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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天后再考虑删除

火山引擎 最新活动