如何在Ubuntu上更新Tomcat版本
查看当前Tomcat版本
运行以下命令确认当前Tomcat版本,避免升级错误:
cd /opt/tomcat/bin # 进入Tomcat bin目录(路径根据实际安装位置调整)
./version.sh # 执行版本脚本
备份现有Tomcat环境
sudo cp -Rf /opt/tomcat /opt/tomcat-backup
logs、work,可选但建议):sudo cp -Rf /opt/tomcat/logs /opt/tomcat-backup/logs
sudo cp -Rf /opt/tomcat/work /opt/tomcat-backup/work
下载新版本Tomcat
访问Apache Tomcat官方下载页面(tomcat.apache.org),选择对应版本(如9.0.93),使用wget下载压缩包:
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.93/bin/apache-tomcat-9.0.93.tar.gz
停止Tomcat服务
若Tomcat以systemd服务运行,执行:
sudo systemctl stop tomcat
若直接通过脚本启动,进入bin目录执行:
./shutdown.sh
检查Java版本兼容性
java -version
sudo apt install openjdk-11-jdk
若旧版本通过apt安装,卸载可清除残留配置:
sudo apt remove --purge tomcat9 # 替换为实际安装的包名(如tomcat8、tomcat10)
sudo apt autoremove # 清理无用依赖
注意:若Tomcat是手动安装(如解压tar.gz包),无需此步骤,直接覆盖即可。
解压新版本压缩包
将下载的压缩包解压到/opt/tomcat目录(或其他目标路径):
sudo tar -zxvf apache-tomcat-9.0.93.tar.gz -C /opt/tomcat
设置目录权限
确保Tomcat用户(如tomcat)拥有目录所有权,避免权限问题:
sudo chown -R tomcat:tomcat /opt/tomcat/apache-tomcat-9.0.93
创建符号链接(方便后续升级)
创建latest符号链接指向新版本目录,后续升级只需替换链接目标:
sudo ln -sf /opt/tomcat/apache-tomcat-9.0.93 /opt/tomcat/latest
复制旧配置到新版本
仅小版本升级(如8.5.x→8.5.y)需保留配置,大版本升级(如8→9)需检查配置文件格式变化:
sudo cp -Rf /opt/tomcat-backup/conf/* /opt/tomcat/latest/conf/
sudo cp -Rf /opt/tomcat-backup/webapps/* /opt/tomcat/latest/webapps/
提示:webapps目录下的应用需重新部署(删除旧webapps下的项目,复制新webapps下的项目)。
创建systemd服务文件
编辑/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=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
User=tomcat
Group=tomcat
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
加载服务配置并启动Tomcat
sudo systemctl daemon-reload # 重新加载systemd配置
sudo systemctl enable tomcat # 设置开机自启
sudo systemctl start tomcat # 启动Tomcat服务
验证服务状态
sudo systemctl status tomcat # 检查服务是否运行
tail -f /opt/tomcat/latest/logs/catalina.out # 查看启动日志
检查Tomcat版本
访问http://服务器IP:8080,页面底部会显示Tomcat版本信息。
或通过命令行验证:
curl http://localhost:8080
测试应用功能
访问部署的项目(如http://服务器IP:8080/your-app),确认功能正常。
停止新版本Tomcat
sudo systemctl stop tomcat
恢复旧版本
删除新版本目录,恢复备份:
sudo rm -rf /opt/tomcat/latest
sudo mv /opt/tomcat-backup /opt/tomcat
重启旧版本服务
sudo systemctl start tomcat
conf和webapps目录。server.xml格式变化),确保项目代码兼容(如Servlet API版本)。server.xml中的端口(如8080、8005)是否被占用:sudo netstat -tulnp | grep 8080
/opt/tomcat-backup)以释放空间。