宝塔面板部署 Spring Boot 项目全流程

宝塔面板部署 Spring Boot 项目全流程

一篇面向 Java 开发者的保姆级部署教程。以「智享社区」为例,覆盖文件上传 → 数据库导入 → 项目启动 → 接口验证的全过程。读完你也能把自己的 Spring Boot 项目部署到服务器上。


适用读者

  • 有 Spring Boot 项目要上线,但没用过宝塔面板
  • 习惯本地开发,第一次接触 Linux 服务器部署
  • 需要一份截图完整、照做即成的参考文档

你的项目需要准备什么

开始之前,确保本地已有以下文件(不管项目叫什么,这些是通用的):

文件作用从哪里来
xxx.jarSpring Boot 可执行包mvn package或 Gradle build
application.yml生产环境配置从项目src/main/resources/复制并修改
init.sql建库建表脚本本地导出或手写
fix.sql(可选)上线后补字段/修表开发迭代中积累的 ALTER 语句

本文示例:以「智享社区 (IntelliCommunity)」后端为例,实际命令中的路径、端口、库名请换成你自己的。

本示例项目的环境:

组件版本端口
Spring Boot3.2.xxxxx
MySQL8.0+xxxx
Redis7.xxxxx
JDK17+-

一、上传文件到服务器

宝塔内置了文件管理器,无需额外工具。

操作:宝塔左侧菜单 →文件→ 进入/www/wwwroot/,新建一个以项目命名的目录(如my-project),把上述 3~4 个文件上传进去。

最终目录结构:

/www/wwwroot/<你的项目>/ ├── your-app.jar # Spring Boot JAR ├── application.yml # 生产配置 ├── init.sql # 初始化SQL └── fix.sql # 增量修复SQL(可选)

📸截图1


二、数据库部署

2.1 创建数据库

宝塔左侧 →数据库添加数据库

注意三点:

  • 数据库名application.ymlspring.datasource.url里的库名一致
  • 字符集utf8mb4(支持 emoji)
  • 密码application.yml中的密码一致

📸截图2

2.2 导入初始化 SQL

两种方式都可以:

方式 A:phpMyAdmin(推荐,免命令)

数据库列表 → 点击目标库右边的phpMyAdmin→ 顶部「导入」→ 选择服务器上的init.sql→ 执行。

方式 B:命令行

mysql-uroot-p<数据库名></www/wwwroot/<你的项目>/init.sql

📸截图3

导入成功后,左侧会列出项目中所有的表。核对表数量是否与预期一致。

📸截图4:

2.3 执行增量 SQL(如果有)

开发过程中后加的表字段(deleted 逻辑删除、update_time 等),通过 fix.sql 补齐:

phpMyAdmin → 选中数据库 → 顶部SQL标签 → 粘贴fix.sql全部内容 → 点击「执行」。

📸截图5:SQL 执行成功提示(绿色 ✅)


三、安装 Java 运行环境

3.1 安装插件

宝塔 →软件商店→ 搜索「Java」→ 安装Java 项目一键部署插件。

📸截图6:软件商店中 Java 插件已安装

3.2 确认 JDK 版本

Spring Boot 3.x 要求 JDK 17+。SSH 执行:

java-version# 应输出:openjdk version "17.0.x" 或更高

如果不是 17,在软件商店中切换版本,或手动安装:

# CentOS / Rockyyuminstall-yjava-17-openjdk java-17-openjdk-devel# Ubuntu / Debianaptinstall-yopenjdk-17-jdk

四、部署 Spring Boot 项目

4.1 检查生产配置

application.yml中的数据库连接、Redis 地址、端口等需要与服务器实际情况对齐。重点检查:

server:port:<你的端口># 不要和已有服务冲突spring:datasource:url:jdbc:mysql://<服务器IP>:<MySQL端口>/<数据库名>?...# 库名、端口、密码username:<数据库用户名>password:"<数据库密码>"redis:host:<服务器IP>port:XXXXpassword:<Redis密码,没有就留空>

4.2 宝塔添加 Java 项目

宝塔 →网站Java 项目添加 Java 项目

配置项说明本文示例
项目名称任意,建议和项目一致智享社区
项目路径JAR 所在目录/www/wwwroot/intellicommunity
JDK 版本建议 JDK 17+JDK 17
项目端口与 yml 中server.port一致xxxx
启动命令指定外部配置文件java -jar xxx.jar --spring.config.location=/www/wwwroot/项目/application.yml
运行用户root 即可root

启动命令中--spring.config.location指定了外部配置文件路径,这样可以在不重新打包的情况下修改数据库密码等配置。

📸截图7

点击确定 → 点击启动

4.3 放行端口

两步都要做,缺一不可:

  1. 宝塔防火墙:左侧 →安全→ 添加端口规则(TCP,项目端口)
  2. 云厂商安全组(阿里云/腾讯云等):控制台 → 安全组 → 入方向 → 放行 TCP 项目端口

📸截图9


五、验证部署

5.1 本地 curl 测试

SSH 到服务器执行:

curlhttp://localhost:<端口>/

Spring Boot 默认返回 404 也算正常(说明服务起来了)。更靠谱的做法是调一个实际接口:

curl-XPOST http://localhost:<端口>/api/auth/login\-H"Content-Type: application/json"\-d'{"username":"admin","password":"123456"}'

5.2 外网接口测试

用 Postman、ApiPost 等工具从本地发起请求:

POST http://<服务器公网IP>:<端口>/api/auth/login Content-Type: application/json {"username":"admin","password":"123456"}

📸截图10

5.3 查看运行日志

宝塔 → Java 项目 → 点击项目 →日志。看到Started XXXApplication in X.XXX seconds就说明启动成功。

日志页面也支持实时滚动,排查问题时非常有用。

📸截图11


六、常见问题排查

现象可能原因解决
启动立即崩溃JDK 版本太低Spring Boot 3.x 需要 JDK 17+,升级
Communications link failureMySQL 未启动宝塔首页启动 MySQL,或systemctl start mysqld
Access denied for user数据库密码/用户名不对检查application.yml与宝塔数据库页是否一致
Table 'xxx' doesn't exist未导入 init.sqlphpMyAdmin 重新导入
Redis connection refusedRedis 未启动宝塔软件商店启动 Redis
外网无法访问端口未放行宝塔安全 + 云厂商安全组两层都要放
端口被占用和已有服务冲突application.ymlserver.port
上传文件报 413Nginx 上传大小限制宝塔 Nginx 配置中调大client_max_body_size

七、总结

整个过程就四步,换个项目也一样:

📂 传文件 → 🗄️ 导数据库 → ☕ 启服务 → 🔥 放端口

关键原则:

  1. 配置文件要和生产环境对齐——库名、密码、端口三处一致
  2. 端口放行记两层——宝塔防火墙 + 云安全组
  3. 用外部配置文件——--spring.config.location让你改配置不用重新打包
  4. 不确定就看日志——宝塔 Java 项目的日志面板是排查第一现场

本文截图统一放在screenshots/目录下,按编号命名即可对照。