linux

Linux环境下如何更新Tomcat版本

小樊
59
2025-10-06 08:43:53
栏目: 智能运维

一、升级前准备

  1. 查看当前Tomcat版本
    执行命令确认当前运行的Tomcat版本,避免升级方向错误:

    cd /usr/local/apache-tomcat/bin
    ./version.sh
    
  2. 下载新版本Tomcat
    前往Apache Tomcat官网下载目标版本的二进制压缩包(如Tomcat 9.0.93),推荐使用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 /usr/local/apache-tomcat/* /usr/local/tomcat-backup/
    • 备份环境变量(若有自定义设置):cp ~/.bashrc /usr/local/tomcat-backup/bashrc.bak
  4. 停止Tomcat服务

    • 若作为系统服务运行,使用systemctl停止:systemctl stop tomcat
    • 若直接运行脚本,进入bin目录执行:./shutdown.sh
    • 验证进程是否终止:ps -ef | grep tomcat(无tomcat进程则停止成功)

二、执行升级操作

  1. 移除旧版本Tomcat
    将旧版本目录重命名(保留历史记录):mv /usr/local/apache-tomcat /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/server.xmlconf/tomcat-users.xmlconf/web.xml),避免覆盖新版本的默认优化配置:
      cp -Rf /usr/local/tomcat-backup/conf/* /usr/local/apache-tomcat/conf/
      
    • 迁移Web应用:将旧版本的webapps目录内容复制到新版本:
      cp -Rf /usr/local/tomcat-backup/webapps/* /usr/local/apache-tomcat/webapps/
      
    • 清理默认项目(可选):删除新版本中的示例项目(提升安全性):
      rm -rf /usr/local/apache-tomcat/webapps/{docs,examples,manager,host-manager}
      
  4. 设置权限
    确保Tomcat脚本可执行:

    chmod +x /usr/local/apache-tomcat/bin/*.sh
    
  5. 启动新版本Tomcat
    进入bin目录启动服务:./startup.sh
    实时查看启动日志(确认无错误):tail -f ../logs/catalina.out

  6. 验证升级结果

    • 访问Tomcat默认页面:http://服务器IP:8080(应显示Tomcat欢迎页面)
    • 测试已部署的应用:访问应用URL(如http://服务器IP:8080/your-app),确认功能正常

三、后续操作(可选但建议)

  1. 配置为系统服务(Systemd)
    若未配置服务,创建tomcat.service文件(/etc/systemd/system/tomcat.service),内容如下(根据实际路径调整):

    [Unit]
    Description=Apache Tomcat Web Application Container
    After=network.target
    
    [Service]
    Type=forking
    Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64  # 替换为实际Java路径
    Environment=CATALINA_PID=/usr/local/apache-tomcat/temp/tomcat.pid
    Environment=CATALINA_HOME=/usr/local/apache-tomcat
    Environment=CATALINA_BASE=/usr/local/apache-tomcat
    ExecStart=/usr/local/apache-tomcat/bin/startup.sh
    ExecStop=/usr/local/apache-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 start tomcat
    
  2. 回滚方案
    若升级后出现异常(如无法启动、应用报错),快速回滚至旧版本:

    • 停止新版本Tomcat:systemctl stop tomcat
    • 删除新版本目录:rm -rf /usr/local/apache-tomcat
    • 恢复旧版本:mv /usr/local/apache-tomcat-old /usr/local/apache-tomcat
    • 启动旧版本:systemctl start tomcat

四、关键注意事项

0
看了该问题的人还看了