尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

宝塔面板部署 Spring Boot 项目全流程
📅 发布时间:2026/7/1 3:16:51

宝塔面板部署 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.yml中spring.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.yml里server.port
上传文件报 413Nginx 上传大小限制宝塔 Nginx 配置中调大client_max_body_size

七、总结

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

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

关键原则:

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

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

相关新闻

  • 2026年论文查重免费网站靠谱吗?这5个平台实测对比
  • 基于STM32单片机智能窗帘窗户光敏定时遥控温湿度语音物联网设计1(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_
  • Claude Code 深度实战指南:从环境配置到 Agent 自动化进阶

最新新闻

  • 保姆级教程:在RK3568开发板上搞定RS232/RS485/CAN通信测试(附设备树配置与避坑点)
  • 【机器人】基于matlab缓冲的不确定性感知沃罗诺伊单元多机器人碰撞规避【含Matlab源码 15672期】
  • 别再纠结clock_gettime了!Windows下用QueryPerformanceCounter实现高精度计时(附C++代码示例)
  • 西安军工科研院所首选:满足信创要求的国产数字孪生仿真引擎有哪些?
  • 别再死记硬背公式了!用Python+Matlab手把手复现AM包络调制与解调全过程
  • RTK8852BE蓝牙驱动的安装问题

日新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号