ruoyi若依前后端分离版部署centos7服务器(全)

news2025/1/24 17:50:18

目录

VMware虚拟机 centos7 安装环境如下
一、msql 5.7
二、nginx1.23.3
三、java8
四、redis 3.2.1
五、部署若依前端
六、部署若依后端

前言

虚拟机的桥接与nat模式 : 重点 重点!!!
无线不可以用桥接模式 ,而你用了nat模式会导致除了宿主机跟虚拟机外
同一个路由器下其他设备访问不到 !!
尤其是宿主机的nginx更改为静态ip后会有可能出现虚拟机上不了网 互相ping不通!
强烈建议桥接模式!
由于安装其他环境设计到了ip地址,咱们先把虚拟机的ip更改为静态ip
方便后续做内网穿透
首先 ipconfig 查看宿主机ip地址 地址 网关 掩码配置到虚拟机上
在这里插入图片描述
其次 vmWare虚拟机设置里面 设置为桥接模式
在这里插入图片描述

进入虚拟机配置ipi地址 命令配置
IPADDR 192.168.0前端设置与宿主机一致 最后端的地址不一致就可以了
例如本宿主机ip为 192.168.0.116 虚拟机为 192.168.0.129

vi /etc/sysconfig/network-scripts/ifcfg-ens33

把BOOTPROTO设置为"static"
IPADDR GETWAY 设置下
在这里插入图片描述

服务界面化配置
在这里插入图片描述

接下来 咱们按照由难易简的来安装。

一、msql 5.7

这里值得注意的是 mysql版本的5.7有些语法不被8.0兼容 一定要与自己开发版本兼容

在这里插入图片描述
1 、检测 MySQL
注明:安装之前检测系统是否有自带的 MySQL

rpm -qa | grep mysql # 检查是否安装过 MySQL
rpm -qa | grep mariadb # 检查是否存在 mariadb 数据库(内置的 MySQL 数据库),有则强制删除
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 # 强制删除
rpm -e --nodeps mariadb-5.5.68-1.el7.x86_64 # 强制删除

检索出来的全部删除掉
在这里插入图片描述
2、开始安装
获取mysql下载连接

wget -c https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

在这里插入图片描述
##安装rmp源

rpm -ivh mysql57-community-release-el7-11.noarch.rpm

安装mysql服务

yum -y install mysql-server

3、mysq基础命令

启动mysql服务

systemctl status mysqld #查看

systemctl start mysqld #启动

systemctl stop mysqld #停止

systemctl restart mysqld  #重启

systemctl enable mysqld  #开机启动true

systemctl disable mysqld #开启启动false

4、mysql数据库配置
首先获得mysql数据的初始默认密码

grep 'temporary password' /var/log/mysqld.log

在这里插入图片描述
登录mysql

mysql  -uroot -p 
#那我的Enter password为 PP?sW/(Zz8H7 

登录上去之后 咱们就是要更改密码 否则mysql不会让你操作其他语句生效
默认密码为最少8位 3级验证

alter user 'root'@'localhost' identified by '1qwerasdf@';

这样咱们就可以去修改mysql密码永久策略了

show variables like '%password%';

设置密码长度4位,密码验证等级0 不验证

set global validate_password.length = 4;
set global validate_password.policy = 0;

在这里插入图片描述
设置可远程访问服务器内数据库

update mysql.user set host ='%' where user ='root';

ok 再配置防火墙端口 这就可以打开navicat 进行调试了

firewall-cmd --permanent --add-port=3306/tcp  ##允许3306mysql端口进出

firewall-cmd --reload  #重启下防火墙

systemctl disable firewalld. ##禁止防火墙开启启动
systemctl stop firewalld # 关闭防火墙

直接使用

在这里插入图片描述

二、安装nginx

1、安装前依赖准备
安装nginx前需要先安装好nginx的依赖,直接安装nginx会报错

yum install -y gcc
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel

2、下载解压nginx安装包

wget http://nginx.org/download/nginx-1.23.3.tar.gz
tar -zxvf nginx-1.23.3.tar.gz

解压完成 直接进入

cd nginx-1.23.3
./configure  #想指定安装目录 那就加上 --prefix=/路径

make #进行编译
make install

3、启动ngxin
按照自己的安装路径 进入到 sbin目录下

cd /usr/local/nginx/sbin

在这里插入图片描述

 ./nginx					    //启动nginx
 ./nginx -s stop			 	//停止nginx
 ./nginx -s quit 			    //完成接受到的连接请求后结束服务
  ./nginx -s reload 			// 重新加载nginx

启动之后看到欢迎页面基本就完事了,在配置下开机启动与配置文件
在这里插入图片描述

4、启动与端口问题

firewall-cmd --zone=public --add-port=80/tcp --permanent 
##必须加上--permanent 否则重启后就失效了
systemctl  reload firewalld ##重启防火墙

5、设置成系统服务开机启动nginx
创建并编辑 nginx.service文件

vi /usr/lib/systemd/system/nginx.service

更换成自己的安装路径 复制进去
在这里插入图片描述


[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecReload=/usr/local/nginx/sbin/nginx -s reload
PrivateTmp=true
[Install]
WantedBy=multi-user.target

接下来就试试这些命令


#启动nginx
systemctl start nginx
#停止nginx
systemctl stop nginx
#重启nginx
systemctl restart nginx
#查看nginx运行状态
systemctl status nginx
#开机nginx开机自启动
systemctl enable nginx
#关闭nginx开机自启动
systemctl enable nginx

ok这就告一段落,待会部署前端的时候要去修改配置文件路径

三、安装java

1、安装源
cd至文件夹下
下载、解压源文件

wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz
tar -zxvf jdk-8u202-linux-x64.tar.gz

2、配置环境变量

vim /etc/profile

shift +G 到文末 添加以下内容 看自己的安装地址

JAVA_HOME=/usr/local/jdk1.8.0_202
JRE_HOME=/usr/local/jdk1.8.0_202/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

使文件刷新配置

source /etc/profile

3、验证是否生效
查看版本

java -version

没出 java version “1.8.0_202” 就看自己下自己profile文件内是否配置正确

四、安装redis

1、安装redis数据库

yum install redis
yum install epel-release #下载仓库

2、redis服务命令

systemctl start redis  # 启动redis服务
systemctl stop redis  # 停止redis服务
systemctl restart redis # 重启redis服务
systemctl status redis  # 查看redis状态
systemctl enable redis #开机自动启动

redis已经启动状态了

在这里插入图片描述

3、开放端口号
注意:80端口是必须要开放的,而6379是redis的默认端口。

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=6379/tcp --permanent

4、防火墙设置

systemctl stop firewalld #停止防火墙
systemctl restart firewalld #重启防火墙
sudo systemctl disable firewalld #禁用防火墙服务
sudo systemctl status firewalld #查看防火墙状态
如下图,黑色原点就是关闭的,开启状态是个绿色点,
【不要禁用防火墙】,
如果在公网禁用防火墙跟一个妙龄萝莉在人迹罕及的乡野间裸奔无异。

在这里插入图片描述

5、查看端口

netstat -lnp|grep 6379


6、设置redis 远程连接和密码

vi  redis.conf  #找到自己的redis安装位置
找到 bind 127.0.0.1 修改为虚拟的ip

在这里插入图片描述

在查找 protected-mode  设置为no,关闭redis的保护模式

在这里插入图片描述

如果修改端口号 搜索6379 

在这里插入图片描述

# requirepass foobared 默认是不需要密码 
更改为
requirepass  123456
一定要去掉#号使之生效
配置完 wq!保存 

在这里插入图片描述
7、重启

systemctl restart redis  #重启redis配置就生效了

五、部署前端

http://192.168.10.129/prod-api/getInfo
如果部署启动之后获取不到验证码
或者取消验证码的 要F12试下登录 看自己发出去的请求是不是prod-api
否则那就是打包打成成stage了 这样无法访问到的
在这里插入图片描述

# 打包正式环境 推荐
npm run build:prod
# 打包预发布环境
npm run build:stage

构建打包成功之后,会在根目录(ruoyi-ui)生成 dist 文件夹,里面就是构建打包好的文件,通常是 .js .css、index.html 等静态文件。
接下来会用到若依官网的配置文件
Nginx 全文复制黏贴 root路径记号
在这里插入图片描述

vi /usr/local/nginx/conf/nginx.conf  ##检查自己的安装路径

更改下proxy_pass属性,换成自己的虚拟机的ip与暴露的端口
在这里插入图片描述

systemctl restart nginx #重启服务,使配置生效

图片内 root 后的目录 自己在服务器创建一下 路径对上就行
mkdir /home/ruoyi/projects/ 将打包好的dist前端文件放进下面 更改为ruoyi-ui
或者
mkdir /home/ruoyi/projects/ruoyi-ui/dist
我这里是将dist更名为ruoyi-ui
在这里插入图片描述
ok 输入自己的ip+端口号这就运行起来了
在这里插入图片描述

六、部署后端

1、修改yml文件的上传文件路径
在这里插入图片描述

2、更改数据库连接信息
在这里插入图片描述
3、修改redis的host
必须与redis内的配置文件redis.conf一致
在这里插入图片描述

4、上传jar包至服务器
在这里插入图片描述

java –jar energy.jar

在这里插入图片描述
在这里插入图片描述
前端访问ip+端口 点击登录
头像为null不是报错 更改的服务器上传路径里面没图片就为这样
在这里插入图片描述

后端部署至此完成,redis 跟数据库安装没问题 更改了jar包的配置文件 就不会出问题的

总结: 虚拟机桥接与nat模式 记住有线无线!!!
不然 要么 宿主机与虚拟机互相pin不通 又是什么虚拟机上不了网
推荐有线桥接模式!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1329990.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

lv12 linux设备树、网卡驱动移植

目录 1 设备树 1.1概念 1.2 设备树文件 1.3 设备树语法 2 Linux内核驱动移植 2.1 步骤 3 实验八网卡驱动移植 3.1 在内核源码的顶层目录下执行如下命令,修改内核配置 3.2 在设备树中添加网卡的硬件信息 3.3 修改时钟相关配置(忽略无用的时钟&…

opencv入门到精通——改变颜色空间

目录 目标 改变颜色空间 对象追踪 如何找到要追踪的HSV值? 目标 在本教程中,你将学习如何将图像从一个色彩空间转换到另一个,像BGR↔灰色,BGR↔HSV等 除此之外,我们还将创建一个应用程序,以提取视频中的…

《深入理解计算机系统》学习笔记 - 第七课 - 机器级别的程序三

Lecture 07 Machine Level Programming III Procedures 机器级别的程序三 文章目录 Lecture 07 Machine Level Programming III Procedures 机器级别的程序三概述程序机制 栈结构栈说明栈定义推入数据弹出数据 调用控制代码示例程序控制流程%rip 传递数据ABI 标准示例 管理局部…

YB75XXH系列是采用CMOS工艺制造,低功耗的高压稳压器

YB75xxH 高耐压线性稳压器 ■产品简介: YB75XXH系列是采用CMOS工艺制造,低功耗的高压稳压器,最高输入电压可达25V,输出电压范围为1.5V一12.0V。它具有高精度的输出电压、极低的供电电流、极低的跌落电压等特点。 ■产品特点: …

使用Guava轻松创建和管理不可变集合

第1章:引言 大家好,我是小黑。今天,我们来聊聊一个在Java编程里超有用的话题:使用Guava创建和管理不可变集合。首先,咱们得明白,什么是不可变集合。简单来说,不可变集合就是一旦创建就不能被修…

深入了解 Android 中的应用程序签名

深入了解 Android 中的应用程序签名 一、应用程序签名介绍1.1 应用程序签名1.2 应用程序签名的意义1.3 应用程序签名的流程1.4 应用程序签名的方案1.5 签名的重要性和应用场景 二、AOSP 的应用签名2.1 AOSP的应用签名文件路径2.2 应用程序指定签名文件 三、Android Studio 的应…

【SpringBoot篇】基于Redis实现生成全局唯一ID的方法

文章目录 🍔生成全局唯一ID🌹为什么要生成全局唯一id🌺生成全局id的方法✨代码实现 🍔生成全局唯一ID 是一种在分布式系统下用来生成全局唯一id的工具 在项目中生成全局唯一ID有很多好处,其中包括: 数据…

在Next.js和React中搭建Cesium项目

在Next.js和React中搭建Cesium项目,需要确保Cesium能够与服务端渲染(SSR)兼容,因为Next.js默认是SSR的。Cesium是一个基于WebGL的地理信息可视化库,通常用于在网页中展示三维地球或地图。下面是一个基本的步骤,用于在Next.js项目中…

信号与线性系统翻转课堂笔记8——周期信号的频谱

信号与线性系统翻转课堂笔记8——周期性信号的频谱 The Flipped Classroom8 of Signals and Linear Systems 对应教材:《信号与线性系统分析(第五版)》高等教育出版社,吴大正著 一、要点 (1,重点&#…

【github】github设置项目为私有

点击setting change to private 无脑下一步

【Proteus/8086】swjtu西南交大微机与接口技术实验:计时器

实验内容: 计时器基本功能: 1)CPU必须用8086 2)计时器最小计时单位为秒。 3)以00:00格式显示计时,前2位表示分钟,后2位表示秒。 4)计时器是正计时方式 5)有暂停、继续计时功能 6)有复位计时功能 7)每次按下暂停键,能显示计时间隔时间 参考…

uniapp中使用封装步骤条组件

针对步骤条封装完终于清清楚楚啦 先看效果&#xff1a; 附上代码&#xff1a;使用可直接复用&#xff1a;数据是写在了当前组件中&#xff0c;如有必须&#xff0c;可以使用其中的props传值stepInfos传递相应的数据&#xff0c;根据steps步数就可以控制走到哪一步啦 <temp…

双向数据绑定是什么

一、什么是双向绑定 我们先从单向绑定切入单向绑定非常简单&#xff0c;就是把Model绑定到View&#xff0c;当我们用JavaScript代码更新Model时&#xff0c;View就会自动更新双向绑定就很容易联想到了&#xff0c;在单向绑定的基础上&#xff0c;用户更新了View&#xff0c;Mo…

在 Windows 中关闭指定端口的方法

方法一&#xff1a;使用命令行&#xff08;Command Prompt&#xff09; 查找端口占用情况 打开命令提示符&#xff08;Command Prompt&#xff09;并输入以下命令来查找占用指定端口的进程&#xff1a; netstat -aon|findstr "<port_number>" 这里的 <p…

【笔记】Spring的循环依赖

Spring的循环依赖 ObjectFactory:函数式接口&#xff0c;可以将lambda表达式作为参数放在方法的实参种&#xff0c;在方法执行的时候&#xff0c;并不会实际的调用当前lambda表达式&#xff0c;只有在调用getObject方法的时候才回去调用lambda表达式 为什么spring要用三级缓存…

一周工作问题总结(2023.12.18-2023.12.22)

一周工作问题总结 1. 接口调用频率2. 汉字在数据库中占用字节问题3. Map在循环中修改自己的key与value4. Group BY5.递归同步数据6.代码移动Idea飘红 1. 接口调用频率 供应商给的接口可以每秒调用5-10次&#xff0c;那么我为了保险每秒调用5次&#xff0c;为了防止过度调用接口…

SpringBoot+SSM项目实战 苍穹外卖(7)(Spring Cache)

继续上一节的内容&#xff0c;本节实现缓存菜品、缓存套餐、添加购物车、查看购物车和清空购物车功能。 目录 缓存菜品缓存套餐(基于Spring Cache)EnableCaching、Cacheable、CachePut和CacheEvictSpring Cache实现缓存套餐 添加购物车查看购物车清空购物车 缓存菜品 用户端小…

nodejs+vue+ElementUi医院预约挂号系统3e3g0

本医院预约挂号系统有管理员&#xff0c;医生和用户。该系统将采用B/S结构模式&#xff0c;使用Vue和ElementUI框架搭建前端页面&#xff0c;后端使用Nodejs来搭建服务器&#xff0c;并使用MySQL&#xff0c;通过axios完成前后端的交互 管理员功能有个人中心&#xff0c;用户管…

使用 Elasticsearch 检测抄袭 (一)

作者&#xff1a;Priscilla Parodi 抄袭可以是直接的&#xff0c;涉及复制部分或全部内容&#xff0c;也可以是释义的&#xff0c;即通过更改一些单词或短语来重新表述作者的作品。 灵感和释义之间是有区别的。 即使你得出类似的结论&#xff0c;也可以阅读内容&#xff0c;获得…

java练习题之多态练习

1&#xff1a;关于多态描述错误的是(D) A. 父类型的引用指向不同的子类对象 B. 用引用调用方法&#xff0c;只能调用引用中声明的方法 C. 如果子类覆盖了父类中方法&#xff0c;则调用子类覆盖后的方法 D. 子类对象类型会随着引用类型的改变而改变 2&#xff1a;class Supe…