news 2026/6/10 16:18:20

宝塔面板实战:从零部署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/6/7 21:07:27

Qwen2.5-7B-Instruct标准制定:国标草案生成+国际标准比对+实施指南

Qwen2.5-7B-Instruct标准制定:国标草案生成国际标准比对实施指南 1. 为什么需要为Qwen2.5-7B-Instruct制定专属标准? 你有没有遇到过这样的情况:花了一周时间部署好一个7B大模型,结果发现调参全靠猜、显存报错看不懂、多人协作时…

作者头像 李华
网站建设 2026/5/21 23:53:03

解锁高效捕获与资源下载:浏览器资源嗅探工具全攻略

解锁高效捕获与资源下载:浏览器资源嗅探工具全攻略 【免费下载链接】cat-catch 猫抓 chrome资源嗅探扩展 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 网页资源捕获已成为数字内容管理的核心需求,而多线程下载技术则是提升效率的…

作者头像 李华
网站建设 2026/6/9 6:20:39

亲自动手试了Live Avatar,这效果我惊呆了

亲自动手试了Live Avatar,这效果我惊呆了 1. 开箱即用:第一次运行就震撼到说不出话 说实话,点下./run_4gpu_gradio.sh那一刻,我根本没抱太大希望——毕竟文档里白纸黑字写着“单卡需80GB显存”,而我手头只有4张RTX 4…

作者头像 李华
网站建设 2026/5/23 6:50:11

【S32K】S32K14x系列开发环境全攻略——从S32DS到Keil MDK无缝切换

1. S32K14x开发环境全景概览 第一次接触S32K14x系列MCU时,最让人头疼的就是开发环境的选择。作为NXP主推的汽车级MCU,它支持三种主流开发环境:官方的S32 Design Studio(S32DS)、Keil MDK以及IAR Embedded Workbench。…

作者头像 李华
网站建设 2026/5/31 8:04:27

League Akari:游戏自动化效率工具 | 竞技玩家的智能辅助解决方案

League Akari:游戏自动化效率工具 | 竞技玩家的智能辅助解决方案 【免费下载链接】LeagueAkari ✨兴趣使然的,功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari …

作者头像 李华