本文章转载于公众号:王清江唷,仅用于学习和讨论,如有侵权请联系
QQ交流群:298405437
本人QQ:4206359
1►数据库的创建和初始化SQL的执行
当我们下载好了Ruoyi-Vue之后,我们得到一个文件夹,如下:
内部又有若干文件,如下:
这里面不仅包括了后端程序(基于SpringBoot的Java程序),也包括前端程序(基于Vue的程序,文件夹“ruoyi-ui”)。
!
特别注意
鉴于前后端都在一个项目里面,强烈推荐分离开。将“ruoyi-yi”文件夹独立出来,剪切出来和RuoYi-Vue并列。
导入后端
将后端导入IDEA,当我们IDEA在手,天下我有。
直接把RuoYi-Vue整个文件夹拖入IDEA图标就导入成功了。
前提:前提是配置好了IDEA的Maven,我之前讲过Maven的最佳实践,如果配置没错,导入之后全程自动下载依赖,直到完成导入。
此外,我在Maven中配置的默认本地仓库是在E盘的cangku,大家可以根据自己的电脑实际情况进行更改。当然也可以用默认的C盘,但尽量不要往C盘放数据文件。
创建数据库并导入数据
RuoYi的后端需要连接数据库。
打开Navicat,连接本机的MySQL。创建如下的数据库,如图:
温馨提示:字符集建议和我保持一致。大家可以自行百度去了解一下uft8mb4和utf8的区别。
建立好数据库之后,需要点击新建查询:
然后去复制如下俩文件的SQL执行即可:
注:两个文件执行并无严格的先后顺序。
2、运行Ruoyi第二步:YML文件的修改(数据库、Redis),启动后端
2.1 YML文件的修改(数据库、Redis)
数据库信息
数据库需要修改信息如下:
位置1:IP,本机为localhost
位置2:端口,默认3306
位置3:数据库名,改成rrryyy
位置4:数据库用户名,rrryyy
位置5:数据库密码,AcZ6xeMadfKDiYP3
Redis信息
Redis需要修改的位置:
host:IP,我连接我的云服务器,我写,诸位写localhost就行。
port:就用默认的6379。
database:0表示使用0号库,默认redis启动了16个数据库,依次下标为0-15。
password:数据库密码,默认没有密码,空着就行,但是如果连接远程的redis服务器,则必须使用密码。使用密码在视频中讲述。
2.2启动后端
完成以上的数据库和Redis之后,找到下面文件:
然后将光标放到main方法,点击鼠标右键。然后出来一个新的框,点击运行即可,如图:
RuoYi-Vue的主启动类:
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })public class RuoYiApplication{ public static void main(String[] args){ // System.setProperty("spring.devtools.restart.enabled", "false"); SpringApplication.run(RuoYiApplication.class, args); System.out.println("(♥◠‿◠)ノ゙ 若依启动成功 ლ(´ڡ`ლ)゙ \n" + " .-------. ____ __ \n" + " | _ _ \\ \\ \\ / / \n" + " | ( ' ) | \\ _. / ' \n" + " |(_ o _) / _( )_ .' \n" + " | (_,_).' __ ___(_ o _)' \n" + " | |\\ \\ | || |(_,_)' \n" + " | | \\ `' /| `-' / \n" + " | | \\ / \\ / \n" + " ''-' `'-' `-..-' "); }}
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
这句话的意思是:注入的时候不要注入DataSourceAutoConfiguration,默认自动注入单数据源。我们后面有一章说到了多数据源,重写了数据源的自动注入。类为:
public class DruidConfig
3、
运行Ruoyi第三步:前端的导入和启动
3.1前端的导入和启动
导入前端
前端导入到WebStorm也是直接将ruoyi-ui文件夹拖入WebStorm图标即可。
安装依赖
前端安装依赖只需要在控制台执行“npm i”即可。
Tips:当我们执行的时候,有时候会很慢。可以考虑使用yarn或者pnpm。
然而使用yarn或者pnpm有时候有一些莫名其妙的问题。所以还是得使用npm,这个时候可以通过更换镜像源为淘宝镜像源。执行下面命令可以查看目前的镜像源:
npm config get registry
修改为淘宝镜像源:
npm config set registry https://registry.npm.taobao.org/
特别需要注意的是:执行的时候,在ruoyi-ui目录内执行npm i。
3.2 启动
做完导入之后,启动就非常简单了,只需要在根目录找到文件:package.json,找到如下的小三角形,点击即可启动(点击小三角后还需要再次点击运行):
当然也可以直接在控制台npm run dev也是同样效果。
3.3 延伸
当我们运行后,前端通过80端口即可访问。访问的时候,有时候前端程序会去调用后端的接口,这是通过代理来实现的。
当我们的路径是/dev-api开头,则会走代理。这里涉及到知识点:环境变量。
4、部署Ruoyi简介、云服务器简介、xshell和xftp安装
本次课程部署采用云服务器,如果是想观看部署在本机,以前的视频讲过。找找我的主页即可。部署在云服务器和部署在本地虚拟机没有什么不同
4.1部署Ruoyi简介
关于RuoYi-Vue是一个前后端分离的Web后台管理系统。部署在云让所有人都可以访问这时Web网站很正常的一个需求,只要我们将前端静态文件暴露在公网中,自然就部署好了。当然,要求是前端的静态资源可以访问到后端的接口,网站才会正常运行。
4.2云服务器简介
可以百度了解一波:https://baike.baidu.***/item/云服务器,当然,其实简单来说,云服务器就是一台电脑,和我们自己普通人的电脑不同之处在于,它有一个公网IP。有了这个公网IP,我们可以在任意一台联网的电脑上访问到公网IP的资源。也就是说,部署在云服务器上可以让我们的网站让所有联网的人访问。
云服务器需要购买。有钱的同学们自行购买,没钱的同学们建议装一个虚拟机。在这个知识付费的时代,花几十块钱学习知识还是必要的。
如果是购买云服务器的同学,建议购买轻量服务器。云服务器装系统可以选择CentOS7.6,7.8,8.x都行。我个人选择的是宝塔面板。这个面板可以方便操作一点。购买后如下图所示:
我们可以在控制管理台页面,进行远程连接服务器。如上图的一键登录。详细过程请看视频。
4.3xshell和xftp安装
当我们有了具备公网IP的云服务之后,我们能够使用xshell去远程连接到服务器从而输入指令。可以通过xftp远程连接到服务器从而进行文件的读写。
下载xshell和xftp地址:
https://www.xshell.***/zh/free-for-home-school/
声明:以上为教育版,不可用于商业用途,否则后果自负!
如果需要付费版,下载地址为:
https://www.xshell***.***/xiazai.html
5、云服务器的宝塔面板安装、在宝塔安装MySQL、Redis、NGINX
建议不要纯看讲义,一定要配合视频。因为讲义没讲到细微之处。
5.1 云服务器的宝塔面板安装
如果购买云服务器的时候,选择系统为宝塔面板,那么就不需要麻烦了。宝塔已经装好了。
但是如果没有选择宝塔面板,就需要手动安装。
宝塔面板官方地址:
https://www.bt.***/new/download.html
根据自己的系统选择安装哪一个。
安装完毕之后,切记需要看看当前的登录密码和账号。通过提供的账号密码来登录进入面板。这里文字叙述太过苍白无力,请看视频。
当我们安装好宝塔面板,登录进入之后,可以看到如下页面:
对于初次登录的同学,建议先了解一下面板,点击每一个菜单,看看都是啥。
另外,关于宝塔的配置:
大家可以适当更改上面的配置。
我建议修改的配置:
1、端口8888改一下。
2、面板用户改一下,改成好记住的。
3、面板密码改一下。
4、绑定一个账号。
Tips:正常来说,我们新买的服务器是进不到宝塔面板的,有一个安全组(阿里云叫法,腾讯叫访问墙)的概念。对于学习来说,可以开放全部端口。
5.2在宝塔安装MySQL、Redis、NGINX
MySQL
找到软件商店,找到MySQL,安装即可。选择版本为5.7。如图:
点击之后,等待一段时间,就装好了。
如果需要查看安装进度,可以点击左上角的任务列表。如图:
安装完毕之后,我们可以通过数据库选项来直接操作此数据库:
我们可以对此MySQL执行添加数据库,修改root用户密码等等操作,如图:
我们下面简单创建ruoyi-vue所需要的数据库,这里就不文字描述了,请看视频。
Redis
安装Redis和MySQL基本一致。
在软件商店找到Redis,然后点击安装即可。可以安装最新的。
安装完毕之后,大家可以去设置页面看看能改哪些配置,试着自己随意修改玩耍一下。
建议给Redis设置一个密码,如果要Redis可以远程访问的话,那是必须要设置密码的。
NGINX
安装NGINX和安装之前的俩软件都一样,找到NGINX点击安装即可。基本上就是iPhone在AppStore找到软件点击安装,没有什么含金量。
6、填写NGINX配置部署前端;运行jar部署后端
6.1Java环境
既然是要在Linux系统中运行有关Java的项目,那么Java环境必不可少。在群文件下载Java后到Linux任意目录解压,设置环境变量,然后运行一个代码(这个代码我不能打出来,否则无法同步到微信公众号,请看视频。。。真服了)。建议看视频,文字方面描述有点费文字,而且还同步不到微信公众号,真奇葩。。
6.2 填写NGINX配置部署前端
部署前端之前,需要先把ruoyi-ui打包。我们找到ruoyi-ui的package.json文件的下面小三角,点击小三角,然后点击运行,等待打包完成,如图:
打包后,会生成一个dist文件夹,如图所示:
我们需要通过Xftp将dist文件夹拷贝到我们购买云服务器的一个目录,我这里新建了一个用户wqj,将其dist文件夹拷贝到wqj下的一个目录专门存放静态资源,如下:
拷贝dist资源到该文件夹下:
到这里我们去宝塔面板配置Linux面板的NGINX配置。
找到NGINX配置修改处,如图:
填入下面的配置,前端就算是配置完毕:
user www;
worker_processes auto;
error_log /www/wwwlogs/nginx_error.log crit;
pid /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 51200;
multi_a***ept on;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 100m;
#用于tomcat反向代理,解决nginx 504错误
proxy_connect_timeout 7200; #单位秒
proxy_send_timeout 7200; #单位秒
proxy_read_timeout 7200; #单位秒
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
# ps:以timeout结尾配置项时间要配置大点
server {
listen 80;
server_name localhost;
charset utf-8;
location / {
root /home/wqj/staticResources/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:8765/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
这里要求,后端端口为8765。同时前端的静态资源已经准备好,在/home/wqj/staticResources/dist目录之下。
6.3 运行jar部署后端
后端可以部署的方式,首先直接运行jar是肯定可以的。此外,可以单独开docker容器运行在容器中。
但是这里运行在容器中必要性,其实并不大。
当前我们直接运行jar来运行后端。后面推出集成docker。
直接运行jar包的方式,首先需要打一个jar包。我们在后端项目中点击package进行打包(打包前,需要修改yml中的端口为8765),如图:
请各位同学注意,这是 root的package,不要打到admin或者***mon的package了。打包root的可以把其他全部都自动打包。
打包之后,在ruoyi-admin下面的target目录下找到打好的jar包,将它通过xftp上传到服务器。然后通过命令nohup java -jar xxxxx &来运行该jar包。这里文字描述过于苍白,请看视频。
运行完毕之后,可以在当前运行jar的目录,通过tail -f nohup.out命令来看运行的控制台输出。
至此,前后端都部署完毕,那么我们通过IP地址在本机访问一下是否能访问到呢?
答案是访问不到,原因是Linux有防火墙,我们需要关闭Linux自带的防火墙才能让外界得以访问。一般不关闭防火墙,而是开放端口,这里我们将80端口暴露在公网。
有了宝塔Linux面板,这件事会变得异常简单。
我们只需要输入在下面页面输入80,描述信息随意输入,再点击放行即可:
此时访问,发现成功了:
我能用域名访问,是因为我购买了域名,而且做了备案,所以可以用域名访问。各位同学需要用IP地址来访问。