CentOS 中 Tomcat 更新步骤
一 准备与环境确认
- 明确当前安装方式:是RPM 包管理(常见于 yum/ dnf)还是二进制压缩包(tar.gz 手动安装)。
- 确认版本与目录:查看现有版本与安装路径,例如执行**/usr/share/tomcat8/bin/versionLogger.sh或查看$CATALINA_HOME**;记录JAVA_HOME、服务名(如 tomcat 或 tomcat8)、端口等关键配置。
- 准备回滚方案:完整备份conf、webapps、lib、work、logs及自定义脚本;准备维护公告与回滚窗口。
二 方法一 使用 RPM 包管理升级(推荐,适用于 yum/dnf)
- 适用于通过 yum/dnf 安装的 Tomcat(如 tomcat8 等)。
- 步骤:
- 安装/启用仓库(如需要):sudo yum install epel-release;sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
- 启用对应版本仓库:sudo yum-config-manager --enable remi-tomcat8(按需替换为 tomcat9/tomcat10)
- 执行升级:sudo yum update tomcat8
- 重启服务:sudo systemctl restart tomcat8
- 验证版本:/usr/share/tomcat8/bin/versionLogger.sh
- 回滚:sudo yum downgrade tomcat8 或切换到旧版本仓库后 yum update。
三 方法二 二进制压缩包升级(通用、可控性强)
- 适用于手动解压安装的 Tomcat(tar.gz)。
- 步骤:
- 备份:sudo cp -r /usr/share/tomcat /usr/share/tomcat-backup;sudo cp -r /etc/tomcat /etc/tomcat-backup
- 停止服务:sudo systemctl stop tomcat
- 下载并解压新版本到目标目录(如 /usr/share):tar -xvzf apache-tomcat-9.0.xx.tar.gz -C /usr/share/
- 迁移配置与数据(按需取舍,保持最小变更):
- 配置文件:cp -r /usr/share/tomcat-backup/conf/* /usr/share/apache-tomcat-9.0.xx/conf/
- 应用与静态资源:cp -r /usr/share/tomcat-backup/webapps/* /usr/share/apache-tomcat-9.0.xx/webapps/
- 共享库与驱动:cp -r /usr/share/tomcat-backup/lib/* /usr/share/apache-tomcat-9.0.xx/lib/(避免覆盖新版本内置组件)
- 工作与日志:必要时保留旧 logs 以便排查
- 调整 systemd 服务(如使用 systemd 管理):
- 编辑:sudo systemctl edit --full tomcat 或 /etc/systemd/system/tomcat.service
- 更新关键环境变量与路径:Environment=CATALINA_HOME=/usr/share/apache-tomcat-9.0.xx;Environment=CATALINA_BASE=/usr/share/apache-tomcat-9.0.xx;ExecStart=/usr/share/apache-tomcat-9.0.xx/bin/startup.sh;ExecStop=/usr/share/apache-tomcat-9.0.xx/bin/shutdown.sh
- 使配置生效并启动:sudo systemctl daemon-reload;sudo systemctl start tomcat
- 验证:systemctl status tomcat;curl http://localhost:8080;查看 catalina.out 与 localhost..log
- 回滚:停止服务,将 CATALINA_HOME/CATALINA_BASE 指回备份目录并启动;或快速用备份目录替换新目录后重启。
四 升级后检查与常见问题
- 版本与进程:确认versionLogger.sh输出为新版本;检查进程与端口占用(ss -lntp | grep 8080)。
- 连接器与安全:如业务依赖 AJP,在 server.xml 中确认 Connector 配置;注意 Tomcat 8.5+ 版本中 AJP 默认关闭,如需启用需显式配置并考虑设置 secretRequired/secret。
- 应用兼容性:关注 JDK 版本要求与 Servlet/JSP API 变更;逐步灰度发布,观察日志与监控告警。
- 回滚触发条件:启动失败、关键功能异常、性能退化或安全策略不兼容时,立即回滚至上一个稳定版本。