温馨提示×

Linux Tomcat如何更新与升级

小樊
78
2025-09-27 20:42:54
栏目: 智能运维

一、升级前准备工作

  1. 备份现有环境:备份Tomcat安装目录(如/usr/local/apache-tomcat)、配置文件(server.xmlweb.xmlcontext.xml等)、Web应用(webapps目录)及数据库(如涉及)。建议备份到独立目录(如/usr/local/tomcat-backup),防止数据丢失。
  2. 检查兼容性:确认新版本Tomcat与当前Java版本匹配(如Tomcat 9需Java 8+、Tomcat 10需Java 11+),并查阅官方文档确认应用框架(如Spring Boot)与新版本Tomcat的兼容性。
  3. 下载新版本:前往Apache Tomcat官网下载稳定版压缩包(如Tomcat 9.0.93的apache-tomcat-9.0.93.tar.gz),推荐使用wget命令(wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.93/bin/apache-tomcat-9.0.93.tar.gz)。

二、停止Tomcat服务 使用systemctl或service命令停止运行中的Tomcat,避免升级过程中文件冲突:

# 使用systemctl(推荐)
sudo systemctl stop tomcat
# 或使用service(旧版系统)
sudo service tomcat stop

停止后,可通过ps -ef | grep tomcat确认进程已终止。

三、卸载旧版本(可选但推荐) 若旧版本是通过包管理器安装(如Ubuntu的APT、CentOS的YUM),可使用以下命令卸载:

# Debian/Ubuntu
sudo apt remove --purge tomcat
# RHEL/CentOS
sudo yum remove tomcat

卸载后,手动删除残留的配置文件和数据目录(如/var/lib/tomcat)。

四、安装新版本

  1. 解压新版本:将下载的压缩包解压到目标目录(如/usr/local/):
    tar -zxvf apache-tomcat-9.0.93.tar.gz -C /usr/local/
    
  2. 重命名目录:为方便管理,将解压后的目录重命名为明确版本号(如apache-tomcat-9.0.93)。

五、迁移配置与数据

  1. 复制配置文件:将旧版本的配置文件复制到新版本的conf目录(保留server.xmlweb.xml等自定义配置):
    cp -Rf /usr/local/apache-tomcat/conf/* /usr/local/apache-tomcat-9.0.93/conf/
    
  2. 迁移Web应用:将旧版本的webapps目录下的应用复制到新版本的webapps目录(可选择仅迁移必要应用,如ROOT.war或业务应用):
    cp -Rf /usr/local/apache-tomcat/webapps/* /usr/local/apache-tomcat-9.0.93/webapps/
    
  3. 清理默认项目:删除新版本中的默认示例项目(如docsexamples),提升安全性:
    rm -rf /usr/local/apache-tomcat-9.0.93/webapps/docs /usr/local/apache-tomcat-9.0.93/webapps/examples
    
  4. 设置权限:为新版本的bin目录下的脚本添加可执行权限:
    chmod +x /usr/local/apache-tomcat-9.0.93/bin/*.sh
    

六、启动新版本并验证

  1. 启动Tomcat:进入新版本的bin目录,执行启动脚本:
    cd /usr/local/apache-tomcat-9.0.93/bin
    ./startup.sh
    
  2. 检查启动日志:通过tail命令实时查看catalina.out日志,确认无错误(如端口冲突、类加载失败):
    tail -f /usr/local/apache-tomcat-9.0.93/logs/catalina.out
    
  3. 验证服务
    • 访问http://服务器IP:8080,查看Tomcat默认页面是否加载;
    • 访问业务应用URL,确认功能正常;
    • 使用ps -ef | grep tomcat确认进程运行中,netstat -tulnp | grep 8080确认端口监听正常。

七、配置为系统服务(可选但推荐) 若旧版本已配置为systemd服务,需更新服务文件指向新版本路径:

  1. 编辑服务文件(如/etc/systemd/system/tomcat.service):
    sudo nano /etc/systemd/system/tomcat.service
    
  2. 修改EnvironmentExecStart/ExecStop路径为新版本目录:
    [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/apache-tomcat-9.0.93/temp/tomcat.pid
    Environment=CATALINA_HOME=/usr/local/apache-tomcat-9.0.93
    Environment=CATALINA_BASE=/usr/local/apache-tomcat-9.0.93
    ExecStart=/usr/local/apache-tomcat-9.0.93/bin/startup.sh
    ExecStop=/usr/local/apache-tomcat-9.0.93/bin/shutdown.sh
    User=tomcat
    Group=tomcat
    RestartSec=10
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
  3. 重新加载systemd并重启服务:
    sudo systemctl daemon-reload
    sudo systemctl restart tomcat
    sudo systemctl enable tomcat  # 设置开机自启
    

八、回滚方案(可选) 若升级后出现严重问题(如无法启动、应用崩溃),可快速回滚到旧版本:

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

0