linux

Linux Tomcat如何进行版本升级

小樊
42
2025-10-02 03:04:33
栏目: 智能运维

一、升级前准备

  1. 查看当前Tomcat版本
    执行$CATALINA_HOME/bin/version.sh(如/usr/local/apache-tomcat/bin/version.sh),输出结果会明确显示当前Tomcat版本号(如Apache Tomcat/9.0.62),确认当前版本是升级的基础。
  2. 下载新版本Tomcat
    访问Apache Tomcat官方网站(https://tomcat.apache.org/download-<version>.cgi,如9.x版本对应download-90.cgi),下载所需版本的二进制发行版(优先选择tar.gz格式,Linux系统兼容性更好)。使用wget命令下载(例如wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.93/bin/apache-tomcat-9.0.93.tar.gz)。
  3. 备份现有配置与数据
    • 创建备份目录:mkdir -p /usr/local/tomcat-backup(路径可根据实际情况调整);
    • 备份整个旧Tomcat安装目录:cp -Rf $CATALINA_HOME/* /usr/local/tomcat-backup/(如/usr/local/apache-tomcat/*);
    • 重点备份配置文件conf/server.xmlconf/web.xmlconf/context.xmlconf/tomcat-users.xml等)、Web应用webapps/目录下的.war文件或解压后的应用文件夹)、日志logs/目录)及数据库连接信息(如context.xml中的JDBC配置)。
  4. 停止Tomcat服务
    • 若Tomcat作为系统服务运行(通过systemctlservice管理),执行:systemctl stop tomcat(或service tomcat stop);
    • 若直接运行startup.sh启动,进入$CATALINA_HOME/bin目录,执行:./shutdown.sh
    • 验证Tomcat是否停止:执行ps -ef | grep tomcat,若无org.apache.catalina.startup.Bootstrap进程则表示已停止。

二、执行升级操作

  1. 重命名旧Tomcat目录
    为避免误操作,将旧Tomcat目录重命名(如mv $CATALINA_HOME /usr/local/apache-tomcat-old),方便后续回滚。
  2. 解压新版本Tomcat
    将下载的新版本压缩包解压到目标目录(如/usr/local/),执行:tar -zxvf apache-tomcat-9.0.93.tar.gz -C /usr/local/; 解压后,将目录重命名为标准名称(如mv /usr/local/apache-tomcat-9.0.93 /usr/local/apache-tomcat),保持路径一致性。
  3. 迁移配置与应用程序
    • 复制配置文件:将备份的conf/目录内容复制到新Tomcat的conf/目录(cp -Rf /usr/local/tomcat-backup/conf/* /usr/local/apache-tomcat/conf/);
    • 复制Web应用:将备份的webapps/目录内容复制到新Tomcat的webapps/目录(cp -Rf /usr/local/tomcat-backup/webapps/* /usr/local/apache-tomcat/webapps/);
    • 可选清理:删除新Tomcatwebapps/目录下的默认应用(如docs/examples/manager/host-manager/),提升安全性(rm -rf /usr/local/apache-tomcat/webapps/{docs,examples,manager,host-manager})。
  4. 设置目录权限
    为新Tomcat的bin/目录下的脚本添加可执行权限(chmod +x /usr/local/apache-tomcat/bin/*.sh),避免启动时出现“Permission denied”错误。
  5. 启动新版本Tomcat
    进入新Tomcat的bin/目录,执行:./startup.sh; 查看启动日志:tail -f ../logs/catalina.out,确认无错误信息(如Server startup in [xxx] milliseconds表示启动成功)。

三、升级后验证

  1. 访问Tomcat默认页面
    在浏览器中输入http://<服务器IP>:8080(若端口未修改),若看到Tomcat默认欢迎页面,说明基础服务正常。
  2. 测试业务应用
    访问已迁移的业务应用URL(如http://<服务器IP>:8080/your-app),验证功能是否正常(如登录、数据查询、接口调用等)。
  3. 检查日志文件
    查看logs/catalina.out(启动日志)、logs/localhost.<date>.log(应用日志),确认无ERRORSEVERE级别的错误信息。

四、回滚方案(可选但必要) 若升级后出现无法解决的问题(如应用无法启动、配置错误),可快速回滚到旧版本:

  1. 停止新Tomcat服务:systemctl stop tomcat(或./shutdown.sh);
  2. 删除新Tomcat目录:rm -rf /usr/local/apache-tomcat
  3. 恢复旧Tomcat目录:mv /usr/local/apache-tomcat-old /usr/local/apache-tomcat
  4. 启动旧Tomcat服务:./startup.sh
  5. 再次验证业务应用是否恢复正常。

五、注意事项

  1. Java版本兼容性
    不同Tomcat版本对Java的要求不同,需提前确认:
    • Tomcat 8.x:需Java 7或8;
    • Tomcat 9.x:需Java 8或更高;
    • Tomcat 10.x:需Java 11或更高。
      执行java -version检查当前Java版本,若不符合要求,需先升级Java。
  2. 配置文件兼容性
    新版本Tomcat可能修改了配置文件的格式或默认值(如server.xml中的<Connector>参数),需对比新旧版本的conf/目录,手动合并自定义配置(如端口号、线程池设置、虚拟主机配置等),避免直接覆盖导致配置丢失。
  3. 应用兼容性
    某些应用可能依赖旧版本Tomcat的API或特性(如Servlet 3.0 vs Servlet 4.0),升级前需在测试环境验证应用是否兼容新版本。若存在不兼容,需修改应用代码或升级依赖库(如javax.servlet改为jakarta.servlet,针对Tomcat 10及以上版本)。
  4. 环境变量更新
    若Tomcat安装路径发生变化(如从/usr/local/apache-tomcat-old迁移到/usr/local/apache-tomcat),需更新系统环境变量:
    • 编辑/etc/profile.d/tomcat.sh(或~/.bashrc),修改CATALINA_HOMECATALINA_BASE的值(如export CATALINA_HOME=/usr/local/apache-tomcat);
    • 执行source /etc/profile.d/tomcat.sh使变量生效。
  5. 停机时间规划
    升级过程需停止Tomcat服务,建议选择业务低峰期(如凌晨2-4点)进行,提前通知相关人员,减少对业务的影响。

0
看了该问题的人还看了