若依系列(一):centos7部署若依项目;在CentOS中从零部署若依开源项目(r ...

打印 上一主题 下一主题

主题 677|帖子 677|积分 2031

专栏简介:本专栏主要分享一些优秀的开源项目等。
  本文用一万五千多字,具体记载了在CentOS服务器上从 0 到 1 部署 ruoyi 项目(前后端分离版)的全过程,从 MySQL、Redis、Nodejs、Nginx 软件的安装和设置,到前后端设置修改,当地测试,最后将前后端都部署到CentOS服务器上;非常适合小白跟着一步步的成功部署若依项目。
   安装环境阐明:
  

  • 你必要一个linux(CentOS)服务器(可以是虚拟机,也可以是linux系统,也可以是云服务器),用于运行若依项目
  • 还必要一个Windows笔记本,用于编译前端和后端工程
  
  
一、前置软件安装

1.1 在Windows上安装IntelliJ IDEA

IDEA被众多Java步伐员视为最好用的Java集成开辟环境。
安装过程参考:https://zhuanlan.zhihu.com/p/702208495
工具也可以从以下链接获取https://download.csdn.net/download/AnChenliang_1002/89425931
解压暗码:12138@Asd

注意:到了上图这一步,即运行完install-current-user.vbs后(出现done后),重新打开JDEA软件,去复制下图文件里的code,粘贴JH就行。

1.2 在Windows上安装webStorm

WebStorm号称最智能的前端开辟IDE, 适用于前端开辟和相关技术的集成开辟环境,作为前端开辟。
俗话说得好, 你可以不消它,但不可以没有它!
安装过程参考:【开辟工具】WebStorm 前端开辟神器菜鸟必备,全网最稳定靠谱的安装教程 一镜到底、全程图文并茂、普通易懂!,参考安装过程就行,JH过程还要按照下面:
JH过程记载:
关闭webStorm,运行以下脚本,下载链接:https://download.csdn.net/download/AnChenliang_1002/89425931
解压暗码:12138@Asd

再打开软件,就发现已经可以了

1.3 在Windows上安装Navicat Premium

Navicat Premium 是一套可创建多个连接的数据库开辟工具,让你从单一应用步伐中同时连接 MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite 。
安装参考:Navicat16.3.9安装和免费试用教程 - Windows(2024)
1.4 在Windows上安装node.js

从链接https://nodejs.org/en进行下载,然后安装:
无脑下一步即可,这个安装路径要记好

二、环境搭建

2.1 服务器环境确认

2.1.1 设置虚拟机网络环境

我是使用的虚拟机中的CentOS7.6作为服务器,你如果使用云服务器也是一样的。
以下是我使用的虚拟机:


可以看到,我这台装备的虚拟机里的CentOS服务器的ip是192.168.181.128,hostname是bogon;
我们ping一下bogon,如下,可以看到ip确实是192.168.181.128:

然后设置VMWare里的CentOS与主机相互能PING通,且CentOS能ping通外网:参考:Vmware虚拟机CentOS7、Ubuntu20系统设置静态IP,且主机和虚拟机系统能相互ping通。
设置完成后,可以ping通虚拟机里的网络了:

2.1.2 更换yum为阿里源

  1. mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  2. wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  3. yum makecache
复制代码
2.1.3 安装MySQL5.7

先更新一下yum:
  1. yum update
复制代码

然后安装MySQL:
  1. # 1、下载yum源的rmp包
  2. wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
  3. # 2、安装yum源
  4. yum -y localinstall mysql57-community-release-el7-11.noarch.rpm
  5. # 3、清理yum缓存
  6. yum clean all
  7. # 4、安装
  8. yum -y install mysql-community-server
复制代码
如果遇到因为公钥未安装而失败的问题:

则下载并导入 MySQL 官方的 GPG 公钥:
  1. rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
复制代码
确认公钥已成功导入:
您可以使用以下命令来列出已导入的 GPG 公钥:
  1. rpm -qa gpg-pubkey*
复制代码
您应该能看到 MySQL 的公钥信息。
然后再次安装MySQL:yum -y install mysql-community-server
就可以安装成功了:

启动:
  1. systemctl start mysqld
复制代码
查看初始暗码
  1. grep 'temporary password' /var/log/mysqld.log
复制代码

登录
  1. mysql -u root -p
  2. Z5G_G%Em7OzY # 输入上面的密码
复制代码

修改暗码为Asd123456_
  1. SET PASSWORD = PASSWORD('Asd123456_');
复制代码

那我就想把暗码设简单点怎么办?
1、查看 mysql 初始的暗码计谋,
输入语句 SHOW VARIABLES LIKE 'validate_password%'; 进行查看,
2、起首必要设置暗码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,输入设值语句 set global validate_password_policy=LOW; 进行设值,
3、设置为 6 位的暗码,设置 validate_password_length 的全局参数为 6 即可,输入设值语句 set global validate_password_length=6; 进行设值,

4、现在可以为 mysql 设置简单暗码了,只要满足六位的长度即可,
输入修改语句 ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; 可以看到修改成功,表示暗码计谋修改成功了!!!

然后设置答应远程登录
  1. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
复制代码

革新
  1. flush privileges;
复制代码
然后quit退出数据库,并对mysql进行设置:
  1. vim /etc/my.cnf
复制代码
  1. # 在[mysqld]下面添加,不需要分号
  2. [mysqld]
  3. character-set-server=utf8
  4. [client]
  5. default-character-set=utf8
  6. [mysql]
  7. default-character-set=utf8
  8. # 设置时区
  9. default-time_zone = '+8:00'
  10. # 新建数据库添加的配置信息
  11. lower_case_table_names=1
  12. default-storage-engine=INNODB
  13. character-set-server=utf8
  14. collation-server=utf8_general_ci
  15. max_connections=10000
  16. sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
复制代码

设置好编码和时区之后重启数据库
  1. systemctl restart mysqld
复制代码
设置开机自启
  1. systemctl enable mysqld
  2. systemctl daemon-reload
复制代码
其他指令
  1. systemctl start mysqld
  2.   #启动systemctl stop mysqld   #停止systemctl status mysqld #状态
复制代码
2.1.4 安装Redis 3.2

将yum源换回阿里源:
  1. mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  2. wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  3. yum makecache
  4. yum update
复制代码
然后安装redis:
  1. #下载epel仓库:
  2. yum install epel-release
  3. #安装redis数据库
  4. yum install redis
复制代码

设置 redis.conf 设置文件,做如下修改:
  1. cd /etc
  2. vim redis.conf
复制代码
注释掉 bind 127.0.0.1,bind 用于限制访问 Redis 的呆板 ip,直接关掉

修改 daemonize no 为 yes,让 Redis 可以配景启动:

日志的路径要记好,当然如果你想修改也是可以的:

设置暗码:
  1. requirepass 123456
复制代码

redis常用命令:
(1)启动:service redis start
(2)停止:service redis stop
(3)检查状态:service redis status
(4)查看进程:ps -ef | grep redis
(5)设置redis开机自启:chkconfig redis on
(5)进入客户端:redis-cli
(6)列出全部key:keys *
(7)修改设置文件:vim /etc/redis.conf
(8)使用端口登录客户端:redis-cli -h 127.0.0.1 -p 6379
如果输入指令发现没有权限,那么输入auth 暗码,即可:

2.1.5 安装JDK

我看到我的CentOS上有JDK 1.8,所以就没有再安装:

如果你的系统里没有JDK,那么可以参考https://blog.csdn.net/weixin_41394654/article/details/123442460安装JDK。
PS:在我的印象里,虚拟机里安装的CentOS一般都自带了JDK,但是云服务器里的好像没有。
安装完成后:

如果jps指令无法使用:

运行以下指令:
  1. yum install java-1.8.0-openjdk-devel.x86_64
复制代码
然后jps就能正常使用了:

2.1.6 安装nginx


  1. # 先安装epel
  2. yum install -y epel-release
  3. # 安装nginx
  4. yum install nginx
复制代码

注意:如果使用各种方法都无法使用yum安装nginx
,则使用编译安装的方式进行安装;
参考:https://www.cnblogs.com/nickchou/p/12978724.html
启动nginx

  1. nginx
复制代码

在CentOS的欣赏器中输入本机ip,可以看到centos的欢迎界面,阐明nginx
安装成功了。

但是我在虚拟机外面访问centos的ip照旧访问不了,试着把防火墙关一下:
  1. systemctl stop firewalld.service
复制代码
好了,防火墙关掉外面就能访问了。

禁止firewall开机启动
  1. systemctl disable firewalld.service
复制代码
2.1.7 端口放行(云服务器)

如果你是云服务器,则必要对以下端口进行放行:
1、MySQL端口

   注意,如果是云服务器,测试连接时连接不上,则必要放行3306端口:
  

除此之外,必要在云服务器上手动设置防火墙答应3306通过:
  1. firewall-cmd --zone=public --add-port=3306/tcp --permanentfirewall-cmd --reload  systemctl restart mysqld
复制代码
2、redis端口6379

   注意,如果是云服务器,则必要放行6379端口:
  

    除此之外,必要在云服务器上手动设置防火墙答应6379通过:
  1. firewall-cmd --zone=public --add-port=6379/tcp --permanent
  2. firewall-cmd --reload  
  3. systemctl restart redis
复制代码
3、后端端口8080

   注意,如果是云服务器,则必要放行后端8080端口:
  

    除此之外,必要在云服务器上手动设置防火墙答应8080通过:
  1. firewall-cmd --zone=public --add-port=8080/tcp --permanent
  2. firewall-cmd --reload  
复制代码
2.2 若依后端环境搭建

2.2.1 下载若依源码

在Windows上新建一个文件夹,用于存放若依的工程,然后在命令行中打开该文件夹:

克隆若依的源码:
  1. git clone https://gitee.com/y_project/RuoYi-Vue.git
复制代码

可以发现我们的文件夹里有源码文件了:

打开IDEA,导入这套源码:


2.2.2 创建若依数据库

起首我们必要创建一个若依的数据库,这个数据库是后端必要用到的,在这个数据库里创建后端使用的一些表;

打开Navicat Premium 16软件,连接->MySQL:

输入服务器的ip和数据库的暗码,当然也可以先测试一下是否能连接:

添加成功后,右键->打开连接:

然后继续在centos上右键->新建数据库:

进行如下设置:

在新建的ruoyi数据库上右键->打开数据库

新建查询:

然后将以下文件的内容全选,复制:

粘贴到新建的查询中,如下:

然后再最前面加入USE ruoyi;,然后点击运行,如下:

执行成功后,在ruoyi->表那里右键革新,就会发现出现了很多表,如下图:

同样的,复制quartz.sql文件中的内容:

执行刚刚同样的步骤:

然后会发现又多出来一些表:

到这里全部数据库的表就建好了。
2.2.3 修改数据库设置文件

回到我们的IDEA里面,
1、修改mysql的设置:

2、修改redis的设置:

3、修改日志路径
因为我们必要现在当地测试一下,所以将日志路径改为以下:

2.2.4 启动后端



第一次启动可能会比较慢:

运行遇到错误:

redis的暗码不对?
这里发现有个格式问题,冒号和123之间要有个空格,

改一下,加上空格:

再运行:

看到以上界面,就阐明后端运行成功了,证明当地启动没问题,也证明他能连上我们的mysql和redis,到以后端就改好了。
2.3 若依前端环境搭建

打开WebStorm 软件:


打开后,打开README.md文件,并打开终端,执行文件里的命令:

如果以下有这个界面,可以点:

运行过程可能比较长,耐烦等待,完成后:

继续在终端中输入下一个指令npm run dev,启动前端服务,如下:

运行成功之后,那么我们的前端也就起来了,此时欣赏器会跳出来如下页面:

能看到验证码阐明前后端都通了,因为验证码就是后端生成的。
2.4 修改后端日志路径

因为前面在2.2.3节为了当地测试我们修改了日志的存储路径,后面我们要在服务器部署,所以肯定照旧必要使用服务器的路径的,所以照旧必要将日志路径改为服务器的路径:

如上图,将路径改为服务器的路径。
三、项目部署

前面我们已经测试了前端后端均能正常使用了,下一步就是将前端后端分别部署到服务器上了。
3.1 若依后端打包

将后端打包,
在IDEA中,打开Maven:

商家package进行打包,如下图:

打包完成后如下图所示:

然后我们会发现,在target路径下,生成了ruoyi-admin.jar文件,这就是我们打包好的后端的jar文件,如下图:

3.2 若依前端打包

打开webStorm,在终端里输入npm run build:prod指令用于将我们的前端进行生产的构建:

构建成功后如下图所示:

打包好的成果物是dist文件夹,如下:

3.3 在服务器上部署若依前后端

3.3.1 服务器准备

在服务器上,在opt下面新建project文件夹,然后再project文件夹里,新建ruoyi文件夹:

我们前端和后端打包好的文件,后面都会放到ruoyi这个文件夹里。
创建用于存放日志的目录:
  1. mkdir -p /opt/project/ruoyi/logs
复制代码

3.3.2 设置nginx


修改Nginx的设置文件(在Nginx的安装目录下):
  1. vim /etc/nginx
  2. /nginx
  3. .conf#如果你是通过编译的方式安装的nginx
  4. ,那么应该是:vim /usr/local/nginx
  5. /conf/nginx
  6. .conf
复制代码
将user改为root:

然后将ruoyi工程的前端加进去:
  1. location / {
  2.     root   /opt/project/ruoyi/ruoyi-ui/dist;
  3.     try_files $uri $uri/ /index.html;
  4.     index  index.html index.htm;
  5. }
  6. location /prod-api/ {
  7.     proxy_set_header Host $http_host;
  8.     proxy_set_header X-Real-IP $remote_addr;
  9.     proxy_set_header REMOTE-HOST $remote_addr;
  10.     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  11.     proxy_pass http://192.168.181.128:8080/;
  12. }
复制代码
注意改成你本身的ip:

  1. proxy_set_header 指令用于设置向后端服务器发送的 HTTP 请求头。这里设置了四个请求头:
  2. Host:将客户端发送的 Host 头信息传递给后端服务器,以便后端服务器能够正确识别请求的目标主机
  3. X-Real-IP:将客户端的真实 IP 地址传递给后端服务器
  4. REMOTE-HOST:设置了一个自定义的请求头 REMOTE-HOST,并将客户端的 IP 地址传递给后端服务器
  5. X-Forwarded-For:用于记录请求经过的 HTTP 代理服务器的 IP 地址
复制代码
保存退出即可。
3.3.3 部署后端

将后端的jar包(3.1节生成的ruoyi-admin.jar)上传到服务器

上传后如下所示:

使用以下启动后端:
  1. nohup java -jar /opt/project/ruoyi/ruoyi-admin.jar &
复制代码

返回了进程号阐明成功了,至于他的执行情况怎么查看呢?

可以看到,新增了nohup.out文件,用cat看一看:

可以看到,若依后端部署成功了。
3.3.4 部署前端

前端的是3.2节生成的dist文件夹,可以将dist文件夹压缩成压缩包整体上传到服务器,再加压,如许文件容易传输,且不容易丢失:

上传到服务器后如下所示:

将dist.zip解压到ruoyi-ui文件夹:
  1. unzip dist.zip -d ruoyi-ui
复制代码
解压后如下所示:

重启nginx

  1. nginx
  2. -s reload
复制代码
访问服务器ip,打开这个有验证码的界面,证明前后端均部署成功了:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

滴水恩情

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表