在 Linux 系统中升级 Tomcat 是一项常见的维护任务,尤其在修复安全漏洞、提升性能或适配新版本 Java 时。以下是 详细操作步骤,适用于 Tomcat 8.x、9.x、10.x 等主流版本,并适用于 小版本升级(如 8.5.67 → 8.5.92) 和 大版本升级(如 8 → 9)。
✅ 一、准备工作
查看当前 Tomcat 版本
cd /usr/local/apache-tomcat/bin
./version.sh
输出中会显示当前 Tomcat 版本号。
下载新版本 Tomcat
前往官网下载对应版本:
https://tomcat.apache.org/download-90.cgi
使用 wget 下载:
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.93/bin/apache-tomcat-9.0.93.tar.gz
✅ 二、备份当前配置和项目
创建备份目录
mkdir -p /usr/local/tomcat-backup
备份原有 Tomcat 安装目录
cp -Rf /usr/local/apache-tomcat/* /usr/local/tomcat-backup/
✅ 三、停止 Tomcat 服务
cd /usr/local/apache-tomcat/bin
./shutdown.sh
如果是作为服务运行,使用 systemctl 或 service 停止:
systemctl stop tomcat
或
service tomcat stop
✅ 四、重命名旧 Tomcat 目录
mv /usr/local/apache-tomcat /usr/local/apache-tomcat-old
✅ 五、解压新版本 Tomcat
tar -zxvf apache-tomcat-9.0.93.tar.gz -C /usr/local/
将解压后的目录重命名为 apache-tomcat:
mv /usr/local/apache-tomcat-9.0.93 /usr/local/apache-tomcat
✅ 六、复制旧配置和项目到新 Tomcat
仅适用于 小版本升级 或 保持相同配置结构
复制 conf 配置文件(server.xml、tomcat-users.xml 等)
cp -Rf /usr/local/tomcat-backup/conf/* /usr/local/apache-tomcat/conf/
复制 webapps 项目
cp -Rf /usr/local/tomcat-backup/webapps/* /usr/local/apache-tomcat/webapps/
复制 logs(可选)
cp -Rf /usr/local/tomcat-backup/logs/* /usr/local/apache-tomcat/logs/
删除默认项目(可选,提升安全性)
rm -rf /usr/local/apache-tomcat/webapps/docs
rm -rf /usr/local/apache-tomcat/webapps/examples
rm -rf /usr/local/apache-tomcat/webapps/manager
rm -rf /usr/local/apache-tomcat/webapps/host-manager
✅ 七、设置权限(可选)
chmod +x /usr/local/apache-tomcat/bin/*.sh
✅ 八、启动 Tomcat 并验证
cd /usr/local/apache-tomcat/bin
./startup.sh
查看启动日志:
tail -f ../logs/catalina.out
访问你的 Web 应用,确保项目正常运行。
✅ 九、(可选)配置为系统服务(Systemd)
创建服务文件:
sudo nano /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
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.targe
t
启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable tomcat
sudo systemctl start tomcat
✅ 十、回滚方案(如有问题)
如果升级后出现异常,可以快速回滚:
停止新版本
cd /usr/local/apache-tomcat/bin
./shutdown.sh
删除新版本目录
rm -rf /usr/local/apache-tomcat
恢复旧版本
mv /usr/local/apache-tomcat-old /usr/local/apache-tomcat
启动旧版本
cd /usr/local/apache-tomcat/bin
./startup.sh
✅ 十一、注意事项
项目 说明
Java 版本兼容性 Tomcat 9 需要 Java 8 或更高,Tomcat 10 需要 Java 11 或更高
跨版本升级 如从 Tomcat 8 升级到 Tomcat 9,需检查配置文件格式变化,项目是否兼容
配置文件冲突 若 server.xml 中有自定义配置,建议手动合并而非直接覆盖
安全加固 删除默认项目、设置防火墙、限制 manager 页面访问权限
日志监控 使用 tail -f logs/catalina.out 实时查看启动日志。
✅ 十二、总结
步骤 操作
1️⃣ 查看当前版本
2️⃣ 下载新版本
3️⃣ 备份旧配置
4️⃣ 停止 Tomcat
5️⃣ 解压新版本
6️⃣ 复制配置和项目
7️⃣ 设置权限
8️⃣ 启动并验证
9️⃣ 配置为服务(可选)
🔁 出现问题可回滚