Ubuntu系统升级Tomcat的详细步骤
备份现有Tomcat环境
升级前务必备份当前Tomcat的安装目录(含配置文件、web应用等),避免升级失败导致数据丢失。常用命令:
sudo tar -czvf tomcat_backup_$(date +%F).tar.gz /opt/tomcat # 假设Tomcat安装在/opt/tomcat
下载新版本Tomcat
访问Apache Tomcat官方下载页面(https://tomcat.apache.org/download-10.cgi),选择与系统架构匹配的二进制分发包(如apache-tomcat-10.1.20.tar.gz),使用wget下载至临时目录:
cd /tmp
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.20/bin/apache-tomcat-10.1.20.tar.gz
停止Tomcat服务
通过systemd停止正在运行的Tomcat实例,避免升级过程中文件被占用:
sudo systemctl stop tomcat # 若使用自定义服务名(如tomcat9),需替换为实际名称
若之前通过apt安装Tomcat(如tomcat9),建议先卸载旧版本以清理残留配置:
sudo apt-get remove --purge tomcat9 # 替换为实际安装的版本(如tomcat8、tomcat10)
sudo apt-get autoremove # 删除无用依赖
解压新版本包
将下载的新版本Tomcat解压至目标目录(如/opt/tomcat),并设置正确权限:
sudo tar -xf /tmp/apache-tomcat-10.1.20.tar.gz -C /opt/tomcat
sudo chown -R tomcat:tomcat /opt/tomcat # 确保tomcat用户拥有所有权
创建符号链接(方便后续升级)
通过符号链接latest指向最新版本,简化后续升级流程(无需修改服务配置):
sudo ln -sf /opt/tomcat/apache-tomcat-10.1.20 /opt/tomcat/latest
配置环境变量
编辑系统环境变量文件(如/etc/profile),添加Tomcat路径配置:
echo "export CATALINA_HOME=/opt/tomcat/latest" >> /etc/profile
echo "export PATH=\$PATH:\$CATALINA_HOME/bin" >> /etc/profile
source /etc/profile # 立即生效
创建/更新Systemd服务文件
若旧版本未创建服务或需要更新,新建/etc/systemd/system/tomcat.service文件,内容如下(根据实际情况调整路径):
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/lib/jvm/default-java" # 确保指向正确的Java路径
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
Environment="JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
加载服务配置并重启Tomcat:
sudo systemctl daemon-reload
sudo systemctl enable tomcat # 设置开机自启
sudo systemctl start tomcat # 启动服务
检查服务状态
确认Tomcat服务已正常运行:
sudo systemctl status tomcat
# 输出应显示"active (running)",无报错信息
访问Tomcat默认页面
在浏览器中输入服务器IP地址(如http://192.168.1.100:8080),若看到Tomcat欢迎页面且版本号更新,说明升级成功。
查看Tomcat版本
通过命令行确认Tomcat版本:
curl -v http://localhost:8080 # 在响应头中查找"Server: Apache-Coyote/1.1"后的版本信息
或
/opt/tomcat/latest/bin/version.sh
端口冲突检查
确保Tomcat默认端口(8080)未被其他应用占用,可通过以下命令排查:
sudo netstat -tulnp | grep 8080
若端口被占用,修改`/opt/tomcat/latest/conf/server.xml`中的`<Connector port="8080">`为其他端口。
依赖兼容性
若项目使用Maven构建,检查pom.xml中的Tomcat依赖版本是否与新版本兼容,避免运行时错误:
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>10.1.20</version> <!-- 与新版本一致 -->
</dependency>
配置文件迁移
若旧版本的server.xml、web.xml等配置文件有自定义修改,需手动合并到新版本的对应文件中,避免配置丢失。
清理旧版本文件
升级完成后,可删除旧版本的Tomcat安装目录(保留备份),释放磁盘空间:
sudo rm -rf /opt/tomcat/apache-tomcat-9.0.xx # 替换为旧版本目录名
通过以上步骤,可在Ubuntu系统上安全、高效地完成Tomcat的升级操作。升级过程中若遇到问题,可通过查看Tomcat日志(/opt/tomcat/latest/logs/catalina.out)定位具体原因。