项目背景:这个项目之前是PHP语言开发的,采用MVC混编的,前端用Layui框架+后端用ThinkPHP8.0框架。客户要求给改成Java语言的,就选用了若依前后端分离低代码版。本地开发调试没有问题,就记录下整个项目上线过程。
服务器背景:安装了宝塔,LNMP+Java+Redis环境安装好了。
1、数据库迁移
宝塔建好数据库,把本地数据库(表结构+表数据)按其操作导入即可
2、部署后台服务:
①、ruoyi-admin服务下的application-druid.yml文件的数据库信息对应改下:
②、ruoyi-admin服务下的application.yml文件的文件路径配置改成Linux环境下的路径:
③、打包
④、jar包上传
⑤、新建Java项目,并按照提示启动项目
3. 启动管理后台服务
①、ruoyi-ui模块下的vue.config.js文件,代理配置根据实际情况改下
②、ruoyi-ui模块下的.env.production文件,API前缀修改
我是为了兼容前台服务才做的修改,默认不需要修改
③、打包上线部署
npm run build:prod
注意:Nginx反向代理需要设置
location /dev-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080/;
}
不配置上面的,无法访问后端接口服务
location /dev-api/profile/ {
alias /home/ruoyi/uploadPath/;
}
不配置上面的,图片上传成功但是回显无法展示,不显示图片。
另外一段部署同后台管理系统
最终展示上传效果:
小结:
Nginx配置的坑:
1、没有注意其接口前缀,按照若依默认打包其前缀变成了prod-api,反向代理也要跟着对应改变;
2、图片上传成功,但是不回显,图片也需要做反向代理。
MySQL的坑:
1、本地用的MySQL8.x,有的宝塔版本只有MySQL5.7版本,不支持utf8mb4,造成数据迁移失败。如果用5.7的,则修改数据库;如果不改数据库,则需要兼容utf8mb4,得安装MySQL8.x的版本。