一、升级前准备
查看当前Tomcat版本
执行命令确认当前运行的Tomcat版本,避免升级方向错误:
cd /usr/local/apache-tomcat/bin
./version.sh
下载新版本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
备份现有环境
mkdir -p /usr/local/tomcat-backupcp -Rf /usr/local/apache-tomcat/* /usr/local/tomcat-backup/cp ~/.bashrc /usr/local/tomcat-backup/bashrc.bak停止Tomcat服务
systemctl停止:systemctl stop tomcatbin目录执行:./shutdown.shps -ef | grep tomcat(无tomcat进程则停止成功)二、执行升级操作
移除旧版本Tomcat
将旧版本目录重命名(保留历史记录):mv /usr/local/apache-tomcat /usr/local/apache-tomcat-old
解压新版本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 # 重命名为标准目录名
迁移配置与项目
conf/server.xml、conf/tomcat-users.xml、conf/web.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/
rm -rf /usr/local/apache-tomcat/webapps/{docs,examples,manager,host-manager}
设置权限
确保Tomcat脚本可执行:
chmod +x /usr/local/apache-tomcat/bin/*.sh
启动新版本Tomcat
进入bin目录启动服务:./startup.sh
实时查看启动日志(确认无错误):tail -f ../logs/catalina.out
验证升级结果
http://服务器IP:8080(应显示Tomcat欢迎页面)http://服务器IP:8080/your-app),确认功能正常三、后续操作(可选但建议)
配置为系统服务(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
回滚方案
若升级后出现异常(如无法启动、应用报错),快速回滚至旧版本:
systemctl stop tomcatrm -rf /usr/local/apache-tomcatmv /usr/local/apache-tomcat-old /usr/local/apache-tomcatsystemctl start tomcat四、关键注意事项
java -versionserver.xml可能有格式调整(如连接器配置),迁移时需对比官方文档,避免直接覆盖netstat -tulnp | grep 端口号排查catalina.out日志,及时发现并解决启动错误(如类加载失败、端口占用)