本文以腾讯云服务器+宝塔面板为例子,介绍RuoYi-Vue分离版本的服务器部署流程,如在部署过程中遇到问题或有什么好的建议,欢迎在评论区留言
目录
1、服务器环境配置
宝塔面板-软件商店下载MySQL、Redis、Nginx并安装(这里下载的版本为MySQL 5.7,和部署的项目所使用的版本一致)
开启服务器6379(Redis端口)、3306(MySQL数据库端口)、80(Vue项目前端访问端口)、8088端口(后端端口)(腾讯云轻量应用服务器,在防火墙添加规则)和宝塔面板添加端口规则,开启之后用 网站端口扫描工具 测试端口连通性。
先停止MySQL服务、点击设置、在宝塔的配置文件中在 [mysqld] 中添加 skip-grant-tables 保存,并且重载配置并启动。因为有些在连接MySQL时出现这个报错Access denied for user 'root'@'localhost'(using password: YES);所以需要这样配置;
(配置之后重新设置mysql admin密码之后记得要删除skip-grant-tables,将my.ini文件中加入的跳过权限语句删除或加#号注释。重启服务,使用修改后的密码登录即可)
宝塔面板-数据库添加数据库,填写好数据库名、用户名、密码,点击导入,上传本地转储数据库数据库sql文件,导入数据库。
1 )用户名不能为root,因为安装宝塔和mysql数据库的时候默认就会创建了root账户和密码,这个是超级权限的用户名密码,一般程序中不推荐使用root账号和密码链接数据库
2 )数据库名长度不能超过16,可以通过phpMyAdmin手动创建或者在终端通过mysql命令行创建
Redis点击设置-性能调整,将绑定IP由127.0.0.1改为0.0.0.0,设置6379端口和其他信息,然后重启Redis.
Nginx点击设置-配置修改,复制下面代码,粘贴到输入框,点击保存,并且重载配置并启动。
user root;worker_processes 1;error_log /www/wwwlogs/nginx_error.log crit;pid /www/server/nginx/logs/nginx.pid;worker_rlimit_nofile 51200;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; //前端端口 server_name localhost; charset utf-8; location / { root /project/dist; //前端打包文件存储路径 try_files $uri $uri/ /index.html; index index.html index.htm; } location /prod-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/; //后端访问路径 } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }}
2、vue项目打包
2.1、前端项目打包
依次输入如下命令,进入ruoyi-ui文件夹,并对前端代码进行打包,生成一个dist文件夹,
建议不要用直接使用cnpm 安装,会有各种诡异的 bug,可以通过重新指定 registry 来解决 npm 安装速度慢的问题。
cd ruoyi-uinpm install --registry=https://registry.npmmirror.comnpm run build:prod
2.2、打包文件路径配置
这是前端代码打包后的生成的dist文件,将dist文件上传到服务器,新建一个目录project,存储在project目录下(dist文件存储路径需要和Nginx中配置的root路径相同)
2.3、前端部署测试
测试效果,访问服务器地址:80(比如http://43.120.100.100:80),看到登录页即部署成功
问题:CSS样式如果改变或者不正常显示,大概率因为前端文件被加密,打包的dist文件中有未加密的版本(同名的gz文件)
可能用到的linux命令:
find . -name "*.java" |xargs rm -rfv //删除目录下所有.java后缀的文件for gz in *.gz; do gunzip $gz; done //解压目录下所有.gz后缀的文件
3、Spring Boot项目打包部署
3.1 数据库配置
在项目文件中更改application-druid.yml,修改一下数据库的地址,地址不能再是localhost了,如图(服务器地址:43.120.100.100),本地运行系统测试数据库连接是否成功,
url: jdbc:mysql://43.120.100.100:3306/ry-vue?characterEncoding=UTF-8username: ry-vuepassword: ycY7rSJc6Mt487C
问题1:
项目启动报错:null, message from server: "Host '223.73.185.219' is not allowed to connect to this MySQL server",连接远程服务器数据库失败,
宝塔面板-终端执行命令:
cd /www/server/mysql/bin //进入mysql目录mysql -u root -p //输入密码登录use mysql select user,host from user;update user set host = '%' where user='root';flush privileges; //刷新权限
最后重启一下mysql即可;
3.2 Redis配置
在项目文件中更改application.yml,修改一下Redis配置信息(服务器地址43.120.100.100),如图,本地运行系统测试远程Redis连接是否成功。
# redis 配置 redis: # 地址 host: 43.120.100.100 # 端口,默认为6379 port: 6379 # 数据库索引 database: 0 # 密码 password: 123654
在logback.xml中,找到日志存放路径,value修改为你存放日志的目录,可以在之前创建的project文件夹中建一个logs文件夹,则填为value=”/project/logs“
3.3 打包后端代码jar包
利用若依提供的打包方法。进入下载的项目文件夹中的bin目录下,直接双击执行package.bat,它会直接在项目中生成target文件夹,里面包含以及打包好的jar包。我们要使用的是ruoyi-admin文件夹下的target里的jar包。运行package.bat需要marven环境>=3.0,如下图操作顺序:
将ruoyi-admin文件夹下的target里的jar包上传到服务器
3.4 后端jar包启动
命令行启动
找到ruoyi-admin.jar文件的位置,(比如 /project/ruoyi-admin.jar),在终端执行命令:
cd /projectjava -jar ruoyi-admin.jar
即可执行spring boot项目
宝塔启动
宝塔-网站,点击添加JAVA项目,选择上传的ruoyi-admin.jar,设置项目端口为8080,选择项目JDK,提交启动项目。
来源地址:https://blog.csdn.net/weixin_44220970/article/details/127922354