温馨提示×

Linux系统下Tomcat更新步骤

小樊
41
2025-11-07 03:50:59
栏目: 智能运维

一、升级前准备

  1. 备份现有环境
    备份Tomcat安装目录(如/usr/local/apache-tomcat/opt/tomcat)、web应用(webapps目录)、配置文件(conf/server.xmlconf/web.xmlconf/tomcat-users.xml等)及数据库(若应用依赖)。可使用cp -r命令创建备份目录,例如:

    sudo cp -r /usr/local/apache-tomcat /usr/local/apache-tomcat-backup
    
  2. 检查当前版本与依赖
    确认当前Tomcat版本(通过/path/to/tomcat/bin/version.sh)和JDK版本(java -version)。Tomcat与JDK需满足以下兼容性(2025年最新):

    • Tomcat 11.x:JDK 21+(Jakarta EE 10)
    • Tomcat 10.1.x:JDK 11+(Jakarta EE 9/10,包路径从javax.*改为jakarta.*
    • Tomcat 9.x:JDK 8+(HTTP/2、WebSocket 1.1支持)
    • Tomcat 8.5.x:JDK 7+(默认禁用AJP协议增强安全性)
    • Tomcat 7.x及以下:已停止维护,强烈建议升级至Tomcat 9及以上。

二、下载与解压新版本

  1. 下载新版本Tomcat
    访问Apache Tomcat官网(tomcat.apache.org),选择对应版本(如Tomcat 10.1.20),下载核心程序包(apache-tomcat-10.1.20.tar.gz)。可使用wget命令:

    cd /tmp
    wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.20/bin/apache-tomcat-10.1.20.tar.gz
    
  2. 解压并安装
    将下载的压缩包解压至目标目录(如/usr/local),并重命名目录:

    sudo tar -zxvf apache-tomcat-10.1.20.tar.gz -C /usr/local/
    sudo mv /usr/local/apache-tomcat-10.1.20 /usr/local/tomcat
    

三、迁移配置与应用

  1. 复制自定义配置
    将旧版本Tomcat中的自定义配置文件复制到新版本对应目录(如server.xmlweb.xmltomcat-users.xml),避免覆盖新版本的默认配置:

    sudo cp /usr/local/apache-tomcat-backup/conf/server.xml /usr/local/tomcat/conf/
    sudo cp /usr/local/apache-tomcat-backup/conf/web.xml /usr/local/tomcat/conf/
    sudo cp /usr/local/apache-tomcat-backup/conf/tomcat-users.xml /usr/local/tomcat/conf/
    
  2. 迁移Web应用
    将旧版本的webapps目录下的应用(war包或解压后的项目)复制到新版本的webapps目录。若应用无需修改,可直接覆盖;若需更新,建议先备份旧应用:

    sudo cp -r /usr/local/apache-tomcat-backup/webapps/* /usr/local/tomcat/webapps/
    
  3. 处理兼容性问题

    • Tomcat 10+:需将应用中的javax.*包路径改为jakarta.*(可使用官方迁移工具tomcat-jakartaee-migration);
    • Tomcat 9+:若应用使用HTTP/2,需确保JDK 1.8+并添加ALPN扩展;
    • Tomcat 8.5+:默认禁用AJP协议,若需使用需修改server.xml中的AJPConnector配置。

四、启动与验证

  1. 启动Tomcat服务
    进入新版本Tomcat的bin目录,执行startup.sh启动:

    cd /usr/local/tomcat/bin
    ./startup.sh
    
  2. 检查启动日志
    查看logs/catalina.out日志文件,确认无ERRORSEVERE级别的错误(如类加载失败、端口冲突):

    tail -f /usr/local/tomcat/logs/catalina.out
    
  3. 验证应用功能

    • 访问Tomcat欢迎页(http://服务器IP:8080),确认页面正常显示;
    • 测试部署的应用(如登录、接口调用),确保业务逻辑无异常;
    • 若启用了manager应用,检查http://服务器IP:8080/manager是否能正常访问(需确认tomcat-users.xml中的角色权限)。

五、清理与优化(可选)

  1. 删除旧版本
    确认升级成功后,删除旧版本Tomcat目录(如/usr/local/apache-tomcat-backup)和下载的安装包,释放磁盘空间:

    sudo rm -rf /usr/local/apache-tomcat-backup
    sudo rm -rf /tmp/apache-tomcat-10.1.20.tar.gz
    
  2. 优化启动脚本
    若使用systemd管理服务,可编辑/etc/systemd/system/tomcat.service文件(若未创建,参考之前步骤),添加环境变量(如JAVA_HOME)并设置开机自启:

    [Unit]
    Description=Apache Tomcat Web Application Container
    After=network.target
    
    [Service]
    Type=forking
    Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
    Environment=CATALINA_PID=/usr/local/tomcat/temp/tomcat.pid
    Environment=CATALINA_HOME=/usr/local/tomcat
    Environment=CATALINA_BASE=/usr/local/tomcat
    ExecStart=/usr/local/tomcat/bin/startup.sh
    ExecStop=/usr/local/tomcat/bin/shutdown.sh
    User=tomcat
    Group=tomcat
    RestartSec=10
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    

    然后执行以下命令使配置生效:

    sudo systemctl daemon-reload
    sudo systemctl enable tomcat
    sudo systemctl restart tomcat
    

六、回滚方案(如有问题) 若升级后出现严重问题(如应用无法启动、核心功能失效),可快速回滚至旧版本:

  1. 停止新版本Tomcat服务;
  2. 删除新版本目录(如/usr/local/tomcat);
  3. 恢复旧版本目录(如mv /usr/local/apache-tomcat-backup /usr/local/apache-tomcat);
  4. 启动旧版本Tomcat服务(./startup.sh)。

0