centos 7 部署若依前后端分离项目

news2024/11/20 1:34:48

目录

一、新建数据库

二、修改需求配置

1.修改数据库连接

2.修改Redis连接信息

3.文件路径

4.日志存储路径调整

三、编译后端项目 

四、编译前端项目

1.上传项目

2.安装依赖

3.构建生产环境

五、项目部署

1.创建目录

 2.后端文件上传

3. 前端文件上传

六、服务启动

 1.Nginx配置启动

2.redis启动

3.后端项目启动

4.访问项目  

七、安装node.js 

1.下载 node.js

 2.添加环境变量

 3.刷新配置


前言:       

        在centos 7 中部署基于若依开发的前后端分离项目

版本需求:

JDK >= 1.8 (推荐1.8版本)
Mysql >= 5.7.0 (推荐5.7版本)
Redis >= 3.0
Maven >= 3.0
Node >= 12

下载位置:

         前往Gitee下载页面(RuoYi-Vue: 🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本)下载解压到工作目录 


一、新建数据库

        在连接好的MySQL数据库中新建数据库并运行项目的sql脚本

数据库名:medical

字符集:utf8

排序规则:utf8_general_ci

二、修改需求配置

        在Idea中打开需要部署的项目

1.修改数据库连接

        在 ruoyi-admin 目录中找到 application-druid.yml 文件 进行修改

url: 数据库路径

username: 数据库账号

password: 账号密码

2.修改Redis连接信息

        在 ruoyi-admin 目录中找到 application.yml 文件 进行修改

3.文件路径

        同样在 application.yml 中 进行修改

application.yml中的profile需要改为服务器存在的真实路径,根据实际情况调整

4.日志存储路径调整

        在 ruoyi-admin 目录中找到 logback.xml文件 进行修改

logback.xml文件中的路径建议改为./logs,根据实际情况调整


三、编译后端项目 

        项目需求配置修改完成后,编译后端项目成jar包方式

在idea的Maven中点击package进行打包,命令加载完后会在ruoyi-admin的target文件夹中生成一个ruoyi-admin.jar文件

四、编译前端项目

1.上传项目

       将克隆的项目上传至FinalShell中的ruoyi目录中

# 进入local目录
cd /usr/local
# 创建ruoyi目录
mkdir ruoyi

        将克隆项目的文件夹直接拖入到此处进行上传  

2.安装依赖

        在安装依赖是,如果没安装node.js会显示npm:为找到命令,这时候就需要安装node.js了、可查看文章末尾如何安装node.js

# 进入前端项目
cd /usr/local/ruoyi/RuoYi-Vue/ruoyi-ui
# 安装依赖
npm install --registry=https://registry.npm.taobao.org

3.构建生产环境

         执行命令完成后会在ruoyi-ui文件夹下面生成一个dist文件夹

# 构建生产环境
npm run build:prod

五、项目部署

1.创建目录

# 进入ruoyi目录 
cd /usr/local/ruoyi
#创建app目录
mkdir app
# 进入app目录并创建 ruoyi 文件夹
cd app 		mkdir ruoyi

 2.后端文件上传

        将后端编译的 /usr/local/ruoyi/RuoYi-Vue-master/ruoyi-admin/target/ruoyi-admin.jar 
上传至 /usr/local/ruoyi/app/ruoyi-ui 目录下面

3. 前端文件上传

        将前端编译的 /usr/local/ruoyi/RuoYi-Vue-master/ruoyi-ui/dist上传至 /usr/local/ruoyi/app/ruoyi-ui 目录下面

六、服务启动

 1.Nginx配置启动

# 替换掉ruoyi-ui的实际储存路径
cd /etc/nginx/conf.d
vim nginx.conf

# 将代码清空加入以下代码
server {
        listen       80;
        server_name  192.168.36.139;

		location / {
            root   /usr/local/ruoyi/app/ruoyi-ui;
			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;
        }
    }

        重新启动nginx  

sudo ngixn

2.redis启动

# 启动
sudo systemctl start redis-server
# 查看进程
sudo systemctl status redis-server

3.后端项目启动

# 进入app中的ruoyi目录
cd /usr/local/ruoyi/app
# 启动
java -jar ruoyi-admin.jar

4.访问项目  

        在浏览器中输入http://192.168.36.139/index

至此在centos7版本中部署并完成发布成功!


七、安装node.js 

1.下载 node.js

// 切换目录
cd /usr/local

// 下载所需版本
wget https://nodejs.org/dist/v14.15.1/node-v14.15.1-linux-x64.tar.gz

// 解压
tar -zxvf node-v14.15.1-linux-x64.tar.gz 
 
// 重命名文件夹
mv node-v14.15.1-linux-x64 node-v14.15.1

 2.添加环境变量

vim /etc/profile

#在文件最后添加以下配置
export NODE_HOME=/usr/local/node-v14.15.1
export PATH=$PATH:$NODE_HOME/bin

 3.刷新配置

source /etc/profile

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

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

相关文章

Linux——存储管理

文章目录 基本分区磁盘简介磁盘分类linux的磁盘命名磁盘的分区方式 管理磁盘虚拟机添加硬盘查看磁盘信息磁盘分区流程创建分区创建文件系统挂载mount查看挂载信息 剩余空间继续分区MBR如何划分更多的分区为什么只能有4个主分区扩展分区的引入 逻辑卷LVM是什么特点术语创建LVMVG…

【二进制漏洞】缓冲区溢出漏洞

天命:好像复现成功了,又好像没有完全成功 学习视频:抓住漏洞!缓冲区溢出漏洞利用实例,如何利用溢出执行Shell Code_哔哩哔哩_bilibili 漏洞复现 实验环境:kali (其实啥都试过,windo…

二叉树(1)

1 树概念及结构 1.1树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。 把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 有一个特殊的结点&a…

Git―基本操作

Git ⛅认识 Git⛅安装 GitCentos(7.6)Ubuntu ⛅Git―基本操作创建本地仓库🍂配置本地仓库🍂工作区, 暂存区, 版本库🍂版本库工作区 添加文件🍂查看文件🍂修改文件🍂版本回退🍂☃️案例 撤销修改…

Linux一键部署telegraf 实现Grafana Linux 图形展示

influxd2前言 influxd2 是 InfluxDB 2.x 版本的后台进程,是一个开源的时序数据库平台,用于存储、查询和可视化时间序列数据。它提供了一个强大的查询语言和 API,可以快速而轻松地处理大量的高性能时序数据。 telegraf 是一个开源的代理程序,它可以收集、处理和传输各种不…

【iOS ARKit】2D肢体动作捕捉

人体肢体动作捕捉在动漫影视制作、游戏CG 动画、实时模型驱动中有着广泛的应用,利用 ARKit,无须额外的硬件设备即可实现 2D和3D人体一系列关节和骨骼的动态捕捉,由于移动AR 的便携性及低成本,必将促进相关产业的发展。 ARBody Tr…

2024牛客寒假算法基础集训营1

文章目录 A DFS搜索M牛客老粉才知道的秘密G why外卖E 本题又主要考察了贪心B 关鸡C 按闹分配 今天的牛客,说是都是基础题,头昏昏的,感觉真不会写,只能赛后补题了 A DFS搜索 写的时候刚开始以为还是比较难的,和dfs有关…

【甲方安全建设】DevOps初体验

文章目录 前言传统的开发方式:Docker-解决环境问题 DevOps-CI/CD走向流水线Jenkins工作流程Git拉取代码Maven构建打包通过SSH连接后端服务器 实现效果 DevSecOps-安全赋能关于安全平台漏洞扫描漏洞预警TODO 前言 临近春节,笔者经过半年北漂,…

【GitHub项目推荐--一个由OpenAI提供支持的聊天机器人和虚拟助手的构建平台】【转载】

Botpress Botpress是一个开源项目,它提供了一个平台,用于构建、部署和管理基于人工智能的聊天机器人和虚拟助手 github地址: https://github.com/botpress/botpress Botpress的介绍 Botpress是一个开源项目,它提供了一个平台&…

【PaddleSpeech】语音合成-男声

环境安装 系统:Ubuntu > 16.04 源码下载 使用apt安装 build-essential sudo apt install build-essential 克隆 PaddleSpeech 仓库 # github下载 git clone https://github.com/PaddlePaddle/PaddleSpeech.git # 也可以从gitee下载 git clone https://gite…

音视频数字化(音乐CD)

上篇文章【音视频数字化(音频数字化)】我们聊了音频数字化原理,其中谈到了音乐CD,结尾也提到了一个小问题:“CD音质是最高吗?为什么?”不知道大家是怎么理解的。 其实CD质量只是“无损”存储,但是数字化标准只是“44.1kHz,16bit”,因此相对于现在,音质不能说最高。 …

day03.函数与指针(含new与delete关键字)

一.指针 #include<iostream> using namespace std; #define pi 3.14159//定义常量int main(){cout<<pi<<endl;int a10;int *pNULL;//定义指针p&a;cout<<"a的地址为&#xff1a;"<<p<<endl;cout<<"a"<&l…

【面试深度解析】快手后端一面:G1、IOC、AOP、并发、JVM生产问题定位、可重复读、ThreadLocal

欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术的推送&#xff01; 在我后台回复 「资料」 可领取编程高频电子书&#xff01; 在我后台回复「面试」可领取硬核面试笔记&#xff01; 文章导读地址…

C# 引用同一个dll不同版本的程序集

因为项目需要所以必须在项目中引用不同版本的同一程序集 我要引用的文件是newtonsoft.json.dll 两个版本为12.0.0.0 和4.0.0.0 1.如果已经先引入了newtonsoft.json 12.0.0.0版本的程序集&#xff0c;如果直接引入另一个版本的程序集的话会提示不成功&#xff0c;所以先将另一个…

C++学习Day01之双冒号作用域运算符

目录 一、程序二、输出三、分析与总结 一、程序 #include<iostream>int atk 1000; void test01() {int atk 2000;std::cout << "atk " << atk << std::endl;// ::代表作用域 如果前面什么都不添加 代表全局作用域std::cout << &q…

c++阶梯之auto关键字与范围for

auto关键字&#xff08;c11&#xff09; 1. auto关键字的诞生背景 随着程序的逐渐复杂&#xff0c;程序代码中用到的类型也越来越复杂。譬如&#xff1a; 类型难以拼写&#xff1b;含义不明确容易出错。 比如下面一段代码&#xff1a; #include <string> #include &…

Sketch使用手册:从入门到精通的完整教程

Sketch软件是Mac平台上流行的矢量图形编辑软件&#xff0c;旨在帮助用户创建网站、移动应用、图标等各种设计原型。Sketch软件的设计风格简洁明了&#xff0c;界面操作简单易用&#xff0c;非常适合UI/UX设计师、平面设计师等数字创意人员。本文将根据如何使用Sketch&#xff0…

嵌入式中C 语言中的三块技术难点

C 语言在嵌入式学习中是必备的知识&#xff0c;甚至大部分操作系统都要围绕 C 语言进行&#xff0c;而其中有三块技术难点&#xff0c;几乎是公认级别的“难啃的硬骨头”。 今天就来带你将这三块硬骨头细细拆解开来&#xff0c;一定让你看明白了。 0x01 指针 指针是公认最难理…

10. BI - 决策树的使用及可视化

本文为 「茶桁的 AI 秘籍 - BI 篇 第 10 篇」 文章目录 可视化探索决策树原理决策树算法决策树可视化泰坦尼克海难数据 Hi&#xff0c;你好。我是茶桁。 上一节课&#xff0c;咱们了解了图形的具体绘制方法&#xff0c;接下来咱们还要看看除了图形绘制之外&#xff0c;还有哪些…

Redis进阶(一):持久化

持久化 何为持久化&#xff1f; MySQL的事务有四个比较核心的特征&#xff1a;原子性、一致性、持久性和隔离性&#xff0c;这里的持久性和持久化说的是一个事&#xff0c;简单来说&#xff0c;数据存储在硬盘上就是持久&#xff0c;存在内存上那就是不持久&#xff08;重启之后…