一、升级前准备
$CATALINA_HOME/bin/version.sh
(如/usr/local/apache-tomcat/bin/version.sh
),输出结果会明确显示当前Tomcat版本号(如Apache Tomcat/9.0.62
),确认当前版本是升级的基础。https://tomcat.apache.org/download-<version>.cgi
,如9.x版本对应download-90.cgi
),下载所需版本的二进制发行版(优先选择tar.gz
格式,Linux系统兼容性更好)。使用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
(路径可根据实际情况调整);cp -Rf $CATALINA_HOME/* /usr/local/tomcat-backup/
(如/usr/local/apache-tomcat/*
);conf/server.xml
、conf/web.xml
、conf/context.xml
、conf/tomcat-users.xml
等)、Web应用(webapps/
目录下的.war
文件或解压后的应用文件夹)、日志(logs/
目录)及数据库连接信息(如context.xml
中的JDBC配置)。systemctl
或service
管理),执行:systemctl stop tomcat
(或service tomcat stop
);startup.sh
启动,进入$CATALINA_HOME/bin
目录,执行:./shutdown.sh
;ps -ef | grep tomcat
,若无org.apache.catalina.startup.Bootstrap
进程则表示已停止。二、执行升级操作
mv $CATALINA_HOME /usr/local/apache-tomcat-old
),方便后续回滚。/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/
目录内容复制到新Tomcat的conf/
目录(cp -Rf /usr/local/tomcat-backup/conf/* /usr/local/apache-tomcat/conf/
);webapps/
目录内容复制到新Tomcat的webapps/
目录(cp -Rf /usr/local/tomcat-backup/webapps/* /usr/local/apache-tomcat/webapps/
);webapps/
目录下的默认应用(如docs/
、examples/
、manager/
、host-manager/
),提升安全性(rm -rf /usr/local/apache-tomcat/webapps/{docs,examples,manager,host-manager}
)。bin/
目录下的脚本添加可执行权限(chmod +x /usr/local/apache-tomcat/bin/*.sh
),避免启动时出现“Permission denied”错误。bin/
目录,执行:./startup.sh
;
查看启动日志:tail -f ../logs/catalina.out
,确认无错误信息(如Server startup in [xxx] milliseconds
表示启动成功)。三、升级后验证
http://<服务器IP>:8080
(若端口未修改),若看到Tomcat默认欢迎页面,说明基础服务正常。http://<服务器IP>:8080/your-app
),验证功能是否正常(如登录、数据查询、接口调用等)。logs/catalina.out
(启动日志)、logs/localhost.<date>.log
(应用日志),确认无ERROR
或SEVERE
级别的错误信息。四、回滚方案(可选但必要) 若升级后出现无法解决的问题(如应用无法启动、配置错误),可快速回滚到旧版本:
systemctl stop tomcat
(或./shutdown.sh
);rm -rf /usr/local/apache-tomcat
;mv /usr/local/apache-tomcat-old /usr/local/apache-tomcat
;./startup.sh
;五、注意事项
java -version
检查当前Java版本,若不符合要求,需先升级Java。server.xml
中的<Connector>
参数),需对比新旧版本的conf/
目录,手动合并自定义配置(如端口号、线程池设置、虚拟主机配置等),避免直接覆盖导致配置丢失。javax.servlet
改为jakarta.servlet
,针对Tomcat 10及以上版本)。/usr/local/apache-tomcat-old
迁移到/usr/local/apache-tomcat
),需更新系统环境变量:
/etc/profile.d/tomcat.sh
(或~/.bashrc
),修改CATALINA_HOME
和CATALINA_BASE
的值(如export CATALINA_HOME=/usr/local/apache-tomcat
);source /etc/profile.d/tomcat.sh
使变量生效。