把 JSP 项目从旧环境迁到 Ubuntu,看起来只是“换台机器”,实际最容易出问题的往往是版本差异、依赖缺失和配置路径不一致。本文按“迁移前核对、基础环境安装、项目部署、连接验证、上线优化”的顺序整理步骤,保留原文中的命令、版本和配置位置,方便你边做边核对,判断问题是出在环境、包内容,还是运行配置上。
迁移前先把环境信息摸清楚
正式动手前,先把原服务器上的运行条件记录完整,这一步能减少后面大量反复排查。

源环境需要确认哪些信息
- JDK 版本,例如 OpenJDK 8 或 11。
- Tomcat 版本,例如 9.x。
- 项目依赖的数据库类型,以及第三方库依赖。
- 项目目录结构,尤其是
WEB-INF/lib下的 JAR 包、web.xml配置内容。 - 端口设置,例如 Tomcat 默认的
8080端口。
这些信息建议在迁移前单独列一份清单,后面安装和验证时逐项对照。
目标 Ubuntu 服务器要先准备什么
目标服务器至少要满足两个前提:系统已更新、当前账号具备 root 或 sudo 权限。
sudo apt update && sudo apt upgrade
如果这一步没有先处理好,后续安装 JDK、Tomcat 或数据库时,容易遇到软件包或权限问题。
先把 Ubuntu 运行环境搭起来
JSP 项目能否顺利启动,首先取决于 JDK、Tomcat 和数据库是否与原环境匹配。
安装 JDK
以 OpenJDK 11 为例,它通常能兼容大多数 JSP 项目。
sudo apt update
sudo apt install openjdk-11-jdk
java -version
如果 java -version 能正常输出版本信息,说明安装已经完成。
需要全局配置时,可以编辑 /etc/profile,加入环境变量:
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
PATH=$JAVA_HOME/bin:$PATH
保存后执行:
source /etc/profile
安装 Tomcat
原文以 Tomcat 9.0.56 为例,安装方式如下:
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.56/bin/apache-tomcat-9.0.56.tar.gz
sudo tar -zxvf apache-tomcat-9.0.56.tar.gz -C /usr/local/
sudo ln -s /usr/local/apache-tomcat-9.0.56 /usr/local/tomcat
cd /usr/local/tomcat/bin && ./startup.sh
启动后,访问 http://localhost:8080。如果能看到 Tomcat 欢迎页,说明容器本身运行正常。
如有需要,也可以在 /etc/profile 中加入:
CATALINA_HOME=/usr/local/tomcat
PATH=$CATALINA_HOME/bin:$PATH
然后执行:
source /etc/profile
项目依赖数据库时的安装方法
如果 JSP 项目依赖 MySQL,可以先完成数据库服务初始化:
sudo apt install mysql-server
sudo systemctl start mysql
sudo systemctl enable mysql
sudo mysql_secure_installation
mysql_secure_installation 这一步不要省,至少要完成 root 密码设置、匿名用户移除等基础安全配置。
JSP 项目怎么打包并部署到 Tomcat
环境搭好之后,就可以开始迁移应用本体。这里最关键的是 WAR 包内容必须完整。

先确认 WAR 包是否打全
项目可以通过 IDE 导出,也可以直接使用命令打包:
jar -cvf project.war *
打包时要重点检查两类内容:
WEB-INF/lib下的依赖 JAR 是否齐全。web.xml是否已经包含在 WAR 包内。
很多“部署成功但页面报错”的问题,本质上都出在 WAR 包缺依赖或缺配置文件。
把 WAR 上传到目标服务器
可以直接使用 scp 上传到服务器临时目录:
scp project.war user@ubuntu_ip:/tmp/
复制到 webapps 目录完成部署
上传后,把 WAR 文件放到 Tomcat 的 webapps 目录:
sudo cp /tmp/project.war /var/lib/tomcat9/webapps/
Tomcat 会自动解压并部署,一般会生成对应的 project 目录。
部署后重点检查数据库和访问配置
如果项目已经解压但仍然打不开,通常问题会集中在数据库连接、端口冲突或访问路径上。
数据库连接需要同步改哪些地方
先登录 MySQL:
sudo mysql -u root -p
然后创建数据库和账号:
CREATE DATABASE jsp_db;
CREATE USER 'jsp_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON jsp_db.* TO 'jsp_user'@'localhost';
FLUSH PRIVILEGES;
完成后,再修改项目中的数据库配置文件,例如:
WEB-INF/classes/jdbc.properties
把 URL、用户名和密码改成 Ubuntu 服务器上的实际值。
Tomcat 端口或虚拟主机怎么调整
如果默认端口被占用,可以修改 conf/server.xml 中的连接器配置:
<Connector port="8080">
例如改成 8081,避免端口冲突。
如果需要绑定域名或单独配置主机,也可以在 server.xml 的 <Engine> 标签内添加 <Host> 配置。
部署完成后如何验证是否正常
修改配置后,先重启 Tomcat:
sudo systemctl restart tomcat9
然后访问项目地址:
http://ubuntu_ip:8080/project_name
其中 project_name 通常就是 WAR 文件名,或者 webapps 下生成的目录名。验证时不要只看首页能否打开,还应顺手检查数据库读写、登录、表单提交等核心功能。
部署失败时先看日志
如果页面报错、启动异常或自动解压后应用不可用,优先查看 Tomcat 日志:
tail -f /usr/local/tomcat/logs/catalina.out
或者:
tail -f /var/log/tomcat9/catalina.out
日志通常能直接暴露缺包、类找不到、数据库连接失败或 XML 配置错误等问题。
上线后还可以补哪些优化
项目迁移成功后,如果还要对外提供稳定访问,可以继续补上反向代理和 HTTPS。

用 Nginx 做前端代理
可以编辑 Nginx 配置文件 /etc/nginx/sites-available/default,加入如下内容:
server {listen 80;server_name your_domain.com;location / {proxy_pass http://localhost:8080/project_name;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}}
配置完成后重启 Nginx:
sudo systemctl restart nginx
这样可以把外部请求转发给本机 Tomcat,同时更方便接入 HTTPS 和静态资源处理。
配置 SSL 证书
如果域名已经解析到服务器,可以直接通过 Certbot 申请免费证书:
sudo certbot --nginx -d your_domain.com
按提示完成配置后,站点就可以通过 HTTPS 提供访问。













