若依 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 确认,不对就换:
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 文件里的两处替换掉:
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 设密码(推荐)
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 默认堆内存不够,加参数:
export NODE_OPTIONS="--max-old-space-size=4096"
npm run build
4G 内存的机器用 2048,8G 用 4096。
打包与启动
mvn clean package -DskipTests
# 产出 target/ruoyi-server.jar
nohup java -jar -Xms512m -Xmx1024m ruoyi-server.jar > app.log 2>&1 &
前端:
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。
验证
- 浏览器打开域名,看到登录页
- 用
admin / admin123登录 - 左侧菜单能正常展开
- 随便点几个页面,不报 500
四项都对,部署完成。
内存参考
2C4G 的机器建议这样分配:
MySQL 1G
Redis 256M
Java -Xmx1024m
系统 + Nginx 剩余
4G 跑若依 Pro 刚好够,再开别的服务就紧张了。
俗人源码网免责声明:
1、本站所有资源均收集于互联网,分享目的仅限学习与参考。如有侵权,请联系 1685698671@qq.com 及时删除!
2、本站资源不保证完整性和安全性,下载后请自行检测。使用过程中出现的任何问题均与本站无关,敬请自行处理。
3、本站资源仅限个人学习研究使用,严禁用于任何违法违纪用途。因使用者违规使用产生的一切后果,由使用者自行承担,本站不承担任何责任。



评论(0)