查看当前Tomcat版本
运行以下命令确认当前Tomcat版本,避免升级方向错误:
cd /opt/tomcat/bin # 进入Tomcat bin目录(路径根据实际安装位置调整)
./version.sh # 执行版本脚本
备份现有环境
/opt/tomcat),防止升级失败可快速回滚:sudo cp -Rf /opt/tomcat /opt/tomcat-backup
conf(含server.xml、web.xml等)、webapps(项目文件)目录:sudo cp -Rf /opt/tomcat/conf /opt/tomcat-conf-backup
sudo cp -Rf /opt/tomcat/webapps /opt/tomcat-webapps-backup
下载新版本Tomcat
访问Apache Tomcat官网下载页面(如Tomcat 9.x或10.x),选择对应Linux版本的压缩包(推荐.tar.gz格式),使用wget下载:
cd /tmp # 临时目录
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.93/bin/apache-tomcat-9.0.93.tar.gz # 替换为目标版本URL
检查Java版本兼容性
Tomcat版本与Java版本强绑定,需提前确认:
java -version查看当前Java版本,若不符合则升级Java:sudo apt update
sudo apt install openjdk-11-jdk # 示例:安装Java 11
停止Tomcat服务
若Tomcat以systemd服务运行,使用以下命令停止:
sudo systemctl stop tomcat # 根据实际服务名调整(如tomcat9)
若未使用服务管理,直接进入Tomcat的bin目录执行:
./shutdown.sh
卸载旧版本(可选但推荐)
若旧版本是通过apt安装的,卸载可清理残留配置(不影响数据):
sudo apt remove --purge tomcat9 # 替换为旧版本包名(如tomcat8)
sudo apt autoremove # 清理无用依赖
解压新版本Tomcat
将下载的压缩包解压到目标目录(如/opt/tomcat):
sudo tar xzvf apache-tomcat-9.0.93.tar.gz -C /opt/tomcat
优化目录结构:为方便后续升级,建议创建符号链接指向最新版本:
sudo ln -sf /opt/tomcat/apache-tomcat-9.0.93 /opt/tomcat/latest
设置目录权限
将Tomcat目录所有者改为tomcat用户(需提前创建,若未创建可参考sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat),确保服务运行权限:
sudo chown -R tomcat:tomcat /opt/tomcat
sudo chmod +x /opt/tomcat/latest/bin/*.sh # 赋予启动脚本执行权限
迁移配置与项目(小版本升级必需)
将旧版本的配置文件和项目文件复制到新版本目录,避免重新配置:
sudo cp -Rf /opt/tomcat-backup/conf/* /opt/tomcat/latest/conf/
sudo cp -Rf /opt/tomcat-backup/webapps/* /opt/tomcat/latest/webapps/
注意:若升级大版本(如8→9),需检查server.xml等配置文件的格式变化(如Servlet规范升级),避免不兼容。
启动新版本Tomcat
使用systemctl启动服务(若未创建服务,参考下文“配置系统服务”):
sudo systemctl start tomcat
查看启动日志,确认无报错:
tail -f /opt/tomcat/latest/logs/catalina.out
验证升级结果
浏览器访问http://服务器IP:8080,若看到Tomcat默认页面且版本号更新,则说明升级成功:
curl -v http://localhost:8080 # 命令行验证
端口冲突
若启动时报“端口8080已被占用”,修改conf/server.xml中的<Connector port="8080">为其他端口(如8081)。
服务无法启动
JAVA_HOME环境变量是否正确:编辑/etc/profile或/opt/tomcat/latest/bin/setenv.sh,添加:export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 # 替换为实际Java路径
export PATH=$JAVA_HOME/bin:$PATH
然后运行source /etc/profile生效。tail -n 100 /opt/tomcat/latest/logs/catalina.out。回滚操作
若升级后出现问题,停止新版本服务,删除新版本目录,恢复备份:
sudo systemctl stop tomcat
sudo rm -rf /opt/tomcat
sudo mv /opt/tomcat-backup /opt/tomcat
sudo systemctl start tomcat
conf、webapps、logs目录。systemctl status tomcat查看服务状态,journalctl -u tomcat查看详细日志。webapps中的docs、examples等示例项目,降低安全风险。