备份旧版本
升级前必须备份旧版Tomcat的安装目录、配置文件及数据,避免升级失败导致数据丢失。
/usr/share/tomcat为例):sudo cp -r /usr/share/tomcat /usr/share/tomcat-backupserver.xml、context.xml):sudo cp -r /usr/share/tomcat/conf /usr/share/tomcat-conf-backupsudo cp -r /usr/share/tomcat/webapps /usr/share/webapps-backup检查Java环境兼容性
Tomcat版本需与Java版本匹配(如Tomcat 9需Java 8+,Tomcat 10需Java 11+)。通过以下命令检查Java版本:
java -version
若未安装或版本不符,使用yum安装对应Java版本(如Java 11):
sudo yum install java-11-openjdk-devel
下载新版本Tomcat
访问Tomcat官网(https://tomcat.apache.org)下载所需版本(如Tomcat 9.0.56),使用wget命令下载压缩包:
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.56/bin/apache-tomcat-9.0.56.tar.gz
停止Tomcat服务
避免升级过程中文件被占用,执行:
sudo systemctl stop tomcat
解压新版本Tomcat
将下载的压缩包解压到目标目录(如/usr/share/):
sudo tar -xvzf apache-tomcat-9.0.56.tar.gz -C /usr/share/
替换旧版本目录
将旧版Tomcat目录重命名(保留备份),将新版本目录重命名为旧版名称(如tomcat):
sudo mv /usr/share/tomcat /usr/share/tomcat-old
sudo mv /usr/share/apache-tomcat-9.0.56 /usr/share/tomcat
更新环境变量
编辑/etc/profile.d/tomcat.sh(若不存在则新建),设置CATALINA_HOME为新版本路径:
echo "export CATALINA_HOME=/usr/share/tomcat" | sudo tee /etc/profile.d/tomcat.sh
使环境变量生效:source /etc/profile.d/tomcat.sh
修改启动脚本(若使用systemd)
编辑/etc/systemd/system/tomcat.service(若未创建,可复制默认模板),更新CATALINA_HOME和ExecStart路径:
[Service]
Environment="CATALINA_HOME=/usr/share/tomcat"
ExecStart=/usr/share/tomcat/bin/startup.sh
ExecStop=/usr/share/tomcat/bin/shutdown.sh
重新加载systemd配置:sudo systemctl daemon-reload
启动Tomcat并验证
启动服务:sudo systemctl start tomcat
检查状态:sudo systemctl status tomcat(确保状态为active (running))
访问默认页面验证版本:curl http://localhost:8080(页面底部会显示Tomcat版本)
清理旧版本
确认新版本运行正常后,删除旧版备份目录和压缩包:
sudo rm -rf /usr/share/tomcat-old
sudo rm /tmp/apache-tomcat-9.0.56.tar.gz(若压缩包在/tmp目录)
更新YUM仓库缓存
sudo yum update
更新Tomcat
执行:sudo yum update tomcat(若已安装旧版本,会自动升级到仓库中的最新版本)
重启服务并验证
sudo systemctl restart tomcat
sudo systemctl status tomcat
curl http://localhost:8080
server.xml、context.xml等配置文件是否与新版本兼容(如新增参数需调整)。sudo firewall-cmd --zone=public --add-port=8080/tcp --permanentsudo firewall-cmd --reload