news 2026/8/28 12:29:38

宝塔面板实战:从零部署Ruoyi前后端分离项目的完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
宝塔面板实战:从零部署Ruoyi前后端分离项目的完整指南

1. 环境准备与宝塔面板安装

第一次用宝塔部署Ruoyi项目时,我对着命令行界面发呆了半小时——这可能是很多小白的真实写照。其实整个过程就像组装乐高积木,只要按步骤来就能搭建出完整的系统。我们先从最基础的服务器环境说起。

选择云服务器时,国内主流平台1核2G配置就足够运行Ruoyi。记得在安全组开放以下端口:8888(宝塔面板)、80/443(Web服务)、3306(MySQL)、6379(Redis)以及项目要用的端口(如8080)。拿到服务器后,用SSH工具连接,执行这条"魔法咒语":

yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

安装完成后会显示面板地址和初始账号密码,建议立即保存到本地。首次登录宝塔会弹出环境安装向导,我建议选择"LNMP"组合(Nginx 1.20+、MySQL 5.7、PHP 7.4)。这里有个小技巧:PHP版本选7.4足够用,MySQL一定要选5.7以上,否则导入数据时会报错。

2. 后端部署全流程

2.1 数据库配置

在宝塔面板的数据库菜单新建数据库,字符集选utf8mb4。下载的Ruoyi源码里会有SQL文件(通常在/sql目录),通过宝塔的phpMyAdmin导入时,我遇到过两个典型问题:

  • 文件过大无法上传:修改php.ini中的upload_max_filesize
  • 外键约束报错:在导入前执行SET FOREIGN_KEY_CHECKS=0

记得检查application-druid.yml中的数据库配置,特别是密码字段。有次我折腾半天连接失败,最后发现是密码里的特殊字符没转义。

2.2 项目打包与上传

用IDEA打开项目后,先修改这三个配置文件:

  1. application.yml:server.port改为计划使用的端口(如8080)
  2. application-druid.yml:数据库连接信息
  3. logback.xml:日志路径改为服务器真实路径(如/www/wwwroot/logs)

执行maven打包时,建议跳过测试:

mvn clean package -Dmaven.test.skip=true

上传jar包到服务器后,在宝塔的"Java项目"菜单新建项目。关键配置点:

  • 项目路径:建议放在/www/wwwroot/目录下
  • JDK版本:与本地开发环境保持一致
  • 端口号:与配置文件中的server.port一致

2.3 常见启动问题

第一次启动失败时别慌,查看日志通常能发现:

  • 端口冲突:netstat -tlnp查看占用端口的进程
  • 数据库连接失败:检查账号密码及远程连接权限
  • 文件权限问题:chmod -R 777 /www/wwwroot/logs

3. 前端部署实战

3.1 项目打包技巧

在ruoyi-ui目录下执行打包时,Node.js版本建议用16.x。遇到过两个坑:

  1. 高版本Node报openssl错误:在package.json的build命令前加SET NODE_OPTIONS=--openssl-legacy-provider
  2. 打包后页面空白:修改vue.config.js中的publicPath为./

3.2 Nginx配置精髓

宝塔新建站点后,关键配置在Nginx的location块:

location / { try_files $uri $uri/ /index.html; root /www/wwwroot/ruoyi-ui/dist; } location /prod-api/ { proxy_pass http://127.0.0.1:8080/; proxy_set_header Host $http_host; }

特别注意:

  • proxy_pass末尾的/不能漏
  • 前端路由需要try_files配置
  • 静态资源缓存可以设置expires

4. 安全加固与优化

部署完成后,建议立即:

  1. 修改宝塔面板默认端口
  2. 设置SSH密钥登录
  3. 配置防火墙规则
  4. 开启Nginx的gzip压缩
  5. 设置定时任务备份数据库

性能优化方面,可以:

  • 调整JVM参数:-Xms512m -Xmx1024m
  • 配置Redis缓存
  • 开启Nginx的http2

5. 故障排查指南

遇到问题先看日志:

  • 后端日志:/www/wwwroot/项目名/logs
  • Nginx错误日志:/www/wwwlogs/域名.error.log
  • MySQL慢查询日志:通过宝塔面板开启

常见问题解决方案:

  1. 502错误:检查后端服务是否运行
  2. 接口404:确认Nginx的proxy_pass配置
  3. 静态资源加载失败:检查路径和权限
  4. 登录失败:确认Redis服务正常

记得第一次成功看到登录页面的成就感,所有报错都成了值得回味的经历。部署过程中养成记录配置变更的习惯,下次再部署同样项目时效率能提升数倍。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 13:04:18

在安卓设备上实现完整VS Code编辑器的技术探索

在安卓设备上实现完整VS Code编辑器的技术探索 【免费下载链接】vscode_for_android 安卓本地使用vs code编辑器实现方案 项目地址: https://gitcode.com/gh_mirrors/vs/vscode_for_android 核心优势解析 移动开发领域长期面临一个矛盾:开发者需要强大的编程…

作者头像 李华
网站建设 2026/8/26 11:32:00

Nano-Banana案例分享:这些惊艳拆解图都是AI做的

Nano-Banana案例分享:这些惊艳拆解图都是AI做的 你有没有见过这样一张图——一双运动鞋被精准拆解成37个独立部件,每一块鞋面、每一根鞋带、每一颗中底发泡颗粒,都悬浮在纯白背景中,用细若游丝的灰色指示线连接原位,排…

作者头像 李华
网站建设 2026/8/25 7:58:10

造相-Z-Image保姆级教程:无需网络本地部署全流程

造相-Z-Image保姆级教程:无需网络本地部署全流程 你是否经历过这些时刻: 想用最新文生图模型,却被“需联网下载12GB权重”卡在第一步; 输入中文提示词,生成图里却冒出英文水印或错位标签; 好不容易跑起来&…

作者头像 李华
网站建设 2026/8/21 16:35:49

优化算法竞技场:蚁群算法与其他TSP求解器的性能对比实验

优化算法竞技场:蚁群算法与其他TSP求解器的深度性能剖析 当面对经典的旅行商问题(TSP)时,算法工程师的武器库中从不缺乏选择。从传统的精确算法到现代的启发式方法,每种技术都在速度、精度和资源消耗之间寻找平衡点。本…

作者头像 李华
网站建设 2026/8/25 18:38:47

一键启动麦橘超然Flux,AI绘图控制台快速搭建指南

一键启动麦橘超然Flux,AI绘图控制台快速搭建指南 1. 为什么你需要这个控制台:轻量、离线、开箱即用的Flux体验 你是否也遇到过这样的困扰?想试试最新的 Flux.1 图像生成模型,却发现显存告急——RTX 3090 都差点被吃满&#xff0…

作者头像 李华
网站建设 2026/8/26 13:23:45

突破式Flash兼容解决方案:重构数字内容访问新范式

突破式Flash兼容解决方案:重构数字内容访问新范式 【免费下载链接】CefFlashBrowser Flash浏览器 / Flash Browser 项目地址: https://gitcode.com/gh_mirrors/ce/CefFlashBrowser 在现代浏览器全面终止对Flash技术支持的今天,大量教育课件、企业…

作者头像 李华