Ubuntu 更新 Tomcat 版本实操指南
一 升级前准备
- 确认当前版本与运行方式:执行 /path/to/tomcat/bin/version.sh 查看版本;若通过服务运行,使用 systemctl status tomcat 或 service tomcat status 确认服务名与运行状态。
- 检查 Java 兼容性:Tomcat 10.x 需要 JDK 11+,Tomcat 8.5/9.0 常用 JDK 8/11;用 java -version 确认。
- 规划版本策略:同系列小版本升级(如 9.0.x → 9.0.y)通常可直接沿用配置;跨大版本(如 8 → 9、9 → 10)需评估 Servlet/JSP/EL API 变更与应用的兼容性。
- 备份关键数据:完整备份 conf/、webapps/(含 WAR 与解压目录)、logs/、自定义脚本与证书等;如使用数据库,确保有可用的备份与回滚方案。
二 标准升级步骤(适用于 tar.gz 手动安装)
- 下载新版本:前往 https://tomcat.apache.org/ 选择所需系列与版本,Linux 下载 .tar.gz,例如:
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.93/bin/apache-tomcat-9.0.93.tar.gz
- 停止服务:
- 直接运行:/path/to/tomcat/bin/shutdown.sh
- 作为服务:sudo systemctl stop tomcat
- 备份当前实例:
sudo cp -a /opt/tomcat /opt/tomcat-backup-$(date +%F-%H%M%S)
- 解压新版本并替换目录:
tar -xzf apache-tomcat-9.0.93.tar.gz -C /opt
sudo mv /opt/apache-tomcat-9.0.93 /opt/tomcat-new
- 迁移配置与业务:
- 仅迁移必要目录:
sudo cp -a /opt/tomcat-backup-/conf /opt/tomcat-new/
sudo cp -a /opt/tomcat-backup-/webapps /opt/tomcat-new/
sudo cp -a /opt/tomcat-backup-*/logs /opt/tomcat-new/(可选)
- 删除示例与高风险应用(可选,提升安全性):
rm -rf /opt/tomcat-new/webapps/{docs,examples,manager,host-manager}
- 权限与启动:
sudo chmod +x /opt/tomcat-new/bin/*.sh
sudo ln -sfn /opt/tomcat-new /opt/tomcat # 如采用符号链接方式
/opt/tomcat-new/bin/startup.sh
- 验证:
tail -f /opt/tomcat-new/logs/catalina.out
访问应用与 /manager/status(如启用),确认版本与功能正常。
三 使用符号链接的平滑升级(推荐)
- 目录结构建议:/opt/tomcat/apache-tomcat-/,并维护 /opt/tomcat/latest 指向当前在用版本。
- 升级操作:
- 停止服务;2) 解压新版本到 /opt/tomcat;3) 仅迁移 conf/ 与 webapps/;4) 调整符号链接:
sudo ln -sfn /opt/tomcat/apache-tomcat- /opt/tomcat/latest
- 启动服务;6) 验证。
- 回滚:
sudo ln -sfn /opt/tomcat/apache-tomcat- /opt/tomcat/latest && sudo systemctl restart tomcat
- 配合 systemd 时,将 Environment=CATALINA_BASE=/opt/tomcat/latest 与 CATALINA_HOME=/opt/tomcat/latest,即可通过切换符号链接完成无路径变更升级。
四 作为系统服务运行时的注意事项
- 如果使用 systemd,确保服务文件中的 JAVA_HOME、CATALINA_HOME、CATALINA_BASE、CATALINA_PID 等变量指向正确路径;升级后执行:
sudo systemctl daemon-reload
sudo systemctl restart tomcat
sudo systemctl status tomcat
- 若采用符号链接方案,推荐将 CATALINA_BASE/CATALINA_HOME 都指向 /opt/tomcat/latest,避免频繁改动 unit 文件。
五 验证与回滚
- 版本验证:
/opt/tomcat/latest/bin/version.sh
curl -u : http://localhost:8080/manager/status(如启用 Manager)
- 回滚方案:
- 停止新版本;2) 恢复符号链接或重命名目录至旧版本;3) 启动旧版本并复核应用;4) 分析新版本日志定位问题后再升级。
- 安全建议:升级后及时删除或限制访问 docs、examples、manager、host-manager 等默认应用,减少攻击面。