若依 Pro(RuoYi-Vue-Pro)是 Java 后台框架,star 四万多。很多人拿来改商城、改 OA,但部署这一步卡住不少新手。

我这次部署踩了四个坑,逐个记下来。

 

 

 

 

 

 

 

 

 

 

环境清单

项 版本 备注
JDK 8 或 17 不要用 11
MySQL 5.7 或 8.0 5.7 要注意字符集
Redis 5.0+ 必须设密码
Maven 3.6+ 打包用
Node 16 或 18 前端编译

坑一:JDK 版本

若依 Pro 要求 JDK 8 或 17。装成 11 的话,启动直接报:

代码块
Unsupported class file major version 55

这是编译版本不兼容。用 java -version 确认,不对就换:

bash
alternatives --config java
update-alternatives --set java /usr/lib/jvm/java-17-openjdk/bin/java

坑二:MySQL 5.7 字符集报错

导入 SQL 时报:

代码块
Unknown collation: 'utf8mb4_0900_ai_ci'

原因:若依的 SQL 文件按 MySQL 8.0 导出,用了 8.0 独有的排序规则。5.7 不认识。

导入前把 SQL 文件里的两处替换掉:

bash
sed -i 's/utf8mb4_0900_ai_ci/utf8mb4_general_ci/g' ruoyi.sql
sed -i 's/utf8mb4_0900_as_cs/utf8mb4_general_ci/g' ruoyi.sql

然后再导入就正常了。

坑三:Redis 密码

若依的配置文件里默认写了 Redis 密码。如果 Redis 没设密码,连接时报:

代码块
NOAUTH Authentication required

方案 A:给 Redis 设密码(推荐)

bash
redis-cli
> config set requirepass 你的密码
> config rewrite

然后改 application.yaml 里的 spring.redis.password。

方案 B:清空配置里的密码。 生产环境不建议。

坑四:前端编译内存溢出

npm run build 到一半报:

代码块
FATAL ERROR: Ineffective mark-compacts near heap limit

Node 默认堆内存不够,加参数:

bash
export NODE_OPTIONS="--max-old-space-size=4096"
npm run build

4G 内存的机器用 2048,8G 用 4096。

打包与启动

bash
mvn clean package -DskipTests
# 产出 target/ruoyi-server.jar

nohup java -jar -Xms512m -Xmx1024m ruoyi-server.jar > app.log 2>&1 &

前端:

bash
npm install
npm run build:prod
# 产出 dist 目录,上传到站点根目录

Nginx 配置

代码块
location / {
    root /www/wwwroot/ruoyi/dist;
    try_files $uri $uri/ /index.html;
}

location /prod-api/ {
    proxy_pass http://127.0.0.1:8080/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

try_files 那行不能少,否则刷新页面会 404。

验证

  1. 浏览器打开域名,看到登录页
  2. 用 admin / admin123 登录
  3. 左侧菜单能正常展开
  4. 随便点几个页面,不报 500

四项都对,部署完成。

内存参考

2C4G 的机器建议这样分配:

代码块
MySQL        1G
Redis        256M
Java         -Xmx1024m
系统 + Nginx  剩余

4G 跑若依 Pro 刚好够,再开别的服务就紧张了。

俗人源码网免责声明:

1、本站所有资源均收集于互联网,分享目的仅限学习与参考。如有侵权,请联系 1685698671@qq.com 及时删除!

2、本站资源不保证完整性和安全性,下载后请自行检测。使用过程中出现的任何问题均与本站无关,敬请自行处理。

3、本站资源仅限个人学习研究使用,严禁用于任何违法违纪用途。因使用者违规使用产生的一切后果,由使用者自行承担,本站不承担任何责任。