ruoyi项目前后端分离版本部署-linux系统

### **ruoyi项目前后端分离版本部署-linux系统****系统环境需求**

JDK >= 1.8
MySQL >= 5.7
Maven >= 3.0
Redis
Node.js
Nginx


- 新建目录

#tmp存放临时安装包
mkdir -p /data/tmp
#service存放软件环境
mkdir -p /data/service
#gitee存放代码版本控制库
mkdir -p /data/gitee


以上目录非必须,可以自行选择安装路径。- JDK >= 1.8 (推荐1.8版本)从oracle官方网站上下载1.8版本中的最新版的JDK。下载完成后,把文件通过WinSCP或者XFTP上传到服务器上。接着进行解压和配置环境变量。下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

#进入安装包目录,解压
cd /data/tmp
tar -zxvf jdk-8u261-linux-x64.tar.gz

#把解压出来的文件夹转移到统一的地方
mv /data/tmp/jdk1.8.0_261 /data/service/jdk1.8.0_261

#修改环境变量/etc/profile,JAVA_HOME修改为自己的jdk路径。
vim /etc/profile
export JAVA_HOME=/data/service/jdk1.8.0_261
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin

#使环境变量生效
source /etc/profile

#检查是否配置成功
java -version


- Maven >= 3.0从Maven官方网站上下载最新版的压缩包。下载完成后,进行解压和配置环境变量。下载地址:https://maven.apache.org/download.cgi

#进入安装包目录,解压
cd /data/tmp
tar -zxvf apache-maven-3.6.3-bin.tar.gz
mv apache-maven-3.6.3 /data/service/

#修改环境变量/etc/profile,MAVEN_HOME修改为自己的路径。
export MAVEN_HOME=/data/service/apache-maven-3.6.3
export PATH= P A T H : PATH: PATH:MAVEN_HOME/bin

#使环境变量生效
source /etc/profile

#检查是否配置成功
mvn -v


- Git从git官方网站上下载最新版的安装包,安装即可。下载地址:https://git-scm.com/

#通过yum安装,本方法最简单。但是无法控制安装的版本
yum -y install git

#检查是否配置成功
git --version


安装之后,在git仓库中需要添加SSH公钥

ssh-keygen -t rsa -C “xx@xx.com”
cat ~/.ssh/id_rsa.pub


- 安装docker

#卸载旧版本
sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
#安装 Docker Engine-Community
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager
–add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker


注意:如果安装docker-ce报错,可以执行以下语句,再进行安装。

yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm


- Mysql >= 5.7 安装教程:https://www.runoob.com/mysql/mysql-install.html下载地址:https://dev.mysql.com/downloads/mysql/访问Mysql的可视化数据库开发工具: Navicat Premium 工具的安装教程可自行百度搜索。	在Docker中安装MySQL。

#查看可用的 MySQL 版本
docker search mysql
#拉取5.7版本
docker pull mysql:5.7
#创建配置文件目录
mkdir -p /data/docker/mysql/conf
#进入配置文件目录,添加一个配置文件
vim my.cnf
#启动镜像
docker run -p 3306:3306 --name mysql -v /data/docker/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=Vv0IBQ5qST -d mysql:5.7


注意1:MySQL(5.7.19)的默认配置文件是 /etc/mysql/my.cnf 文件。如果想要自定义配置,建议向 /etc/mysql/conf.d 目录中创建 .cnf 文件。新建的文件可以任意起名,只要保证后缀名是 cnf 即可。注意2:在mysql的镜像启动之前,创建配置文件目录,并放置好配置文件。这样mysql启动的时候,就可以直接使用配置好的参数。以下内容是配置数据库的字符集为utf-8。

[mysqld]
character-set-server=utf8

[mysql]
default-character-set=utf8


注意3:如果使用docker进入mysql数据库执行包含中文的sql语句,出现中文乱码的情况,需要在容器系统中设置使用中文包。所以进入docker容器时需要设置环境语言:

#进入docker容器设置env LANG=C.UTF-8
docker exec -it mysql env LANG=C.UTF-8 bash


- Redis安装教程:https://www.runoob.com/redis/redis-install.html下载地址:https://github.com/tporadowski/redis/releasesRedis可视化管理工具:[AnotherRedisDesktopManager]:(https://github.com/qishibo/AnotherRedisDesktopManager/releases)

docker pull redis:latest
docker run -itd --name redis-test -p 6379:6379 redis


- Node.js安装教程:https://www.runoob.com/nodejs/nodejs-install-setup.html

tar xf node-v14.15.4-linux-x64.tar.xz // 解压
cd node-v14.15.4-linux-x64/ // 进入解压目录
./bin/node -v // 执行node命令 查看版本

//解压文件的 bin 目录底下包含了 node、npm 等命令,我们可以使用 ln 命令来设置软连接:
mv /data/tmp/node-v14.15.4-linux-x64 /data/service/
ln -s /data/service/node-v14.15.4-linux-x64/bin/npm /usr/local/bin/
ln -s /data/service/node-v14.15.4-linux-x64/bin/node /usr/local/bin/


- Nginx 安装

#首先安装nginx前置软件
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
#下载nginx软件安装包
cd /data/tmp
wget http://nginx.org/download/nginx-1.19.6.tar.gz
tar -zxvf nginx-1.19.6.tar.gz
cd nginx-1.19.6
#设置安装目录为/usr/local/nginx
./configure --prefix=/usr/local/nginx
make
make install
#启动nginx
/usr/local/nginx/sbin/nginx

**后端部署步骤**1. 从git仓库clone下来最新代码。ruoyi前后端分离版本的gitee地址是https://gitee.com/y_project/RuoYi-Vuecl

#clone项目源代码
git clone git@gitee.com:y_project/RuoYi-Vue.git


注意:在clone代码之前,需要在gitee管理后台中添加服务器的SSH公钥。详见https://gitee.com/help/articles/41912. 使用可视化数据库开发工具 Navicat Premium进入数据库管理界面。创建数据库`ry-vue`并执行数据脚本`ry_2021xxxx.sql`,`quartz.sql`3. 修改项目中的配置文件,配置文件有两个,分别是application.yml和application-druid.yml。

cd /data/gitee/RuoYi-Vue/ruoyi-admin/src/main/resources/
#修改application.yml的项目启动端口号
vim application.yml
#修改application-druid.yml的数据源
vim application.yml


修改application.yml的项目启动端口号,修改为18081。修改上传文件路径为/data/tmp

server:
port: 18081

ruoyi:
profile: /data/tmp

redis 配置

spring:
redis:
# 地址
host: localhost
# 端口,默认为6379
port: 6379
# 数据库索引
database: 0
# 密码
password:


修改application-druid.yml的数据源

数据源配置

spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 主库数据源
master:
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: Vv0IBQ5qST


4. 修改好项目的配置文件之后,把入口项目进行打包。通过mvn打包成一个可执行的jar包。

cd /data/gitee/RuoYi-Vue/
mvn clean install -pl com.ruoyi:ruoyi-admin -am


打包完成后,/data/gitee/RuoYi-Vue/ruoyi-admin/target/ruoyi-admin.jar就是打包完成后的jar包文件。5. 启动项目:把jar复制到程序目录,通过java命令行的方式启动jar包文件。因为本项目是使用了spring boot框架,所以jar中内置了web容器,不需要额外安装tomcat了。

mkdir -p /data/app/ruoyi-vue
cp /data/gitee/RuoYi-Vue/ruoyi-admin/target/ruoyi-admin.jar /data/app/ruoyi-vue/ruoyi-admin.jar
cd /data/app/ruoyi-vue/
nohup java -jar ruoyi-admin.jar &


nohup和&用来表示本命令需要在后台执行,这样退出命令行程序后,java程序也不会停止。6. 查看日志,验证项目是否成功运行。**前端部署步骤**```bash
# 进入项目目录
cd /data/gitee/RuoYi-Vue/ruoyi-ui#本地启动的话,可以在这里修改后端接口端口。如果是直接打包的话,不需要修改该配置文件
vim vue.config.js# 打包正式环境
npm run build:prodmkdir /data/app/ruoyi-ui
mv dist/* /data/app/ruoyi-ui/#把生成好的 dist 文件夹的静态文件发布到你的 nginx 或者静态服务器即可,其中的 index.html 是后台服务的入口页面。
vim /usr/local/nginx/conf/nginx.conflocation / {root   /data/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:18081/;}#重新加载配置文件nginx
/usr/local/nginx/sbin/nginx -s reload

打开浏览器,输入:http://localhost(默认账户/密码 admin/admin123
若能正确展示登录页面,并能成功登录,菜单及页面展示正常,则表明环境搭建成功。

提示:node版本需要使用最新的稳定版本,v14.15.4之前的版本可能会打包失败。


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

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

相关文章

如何基于大模型开发应用接口

一、前言 针对自然语言处理方向,以前要开发一个情感分析、命名实体识别之列的应用是非常麻烦的,我们需要完成收集数据、清理数据、构建模型、训练模型、调优模型等一系列操作,每一步都非常耗时。如今大语言模型(LLM)的…

Hive的分区表分桶表

1.分区表: 是Hive中的一种表类型,通过将表中的数据划分为多个子集(分区),每个分区对应表中的某个特定的列值,可以提高查询性能和管理数据的效率。分区表的每个分区存储在单独的目录中,分区的定义…

[Flask笔记]一个完整的Flask程序

前面讲过Flask是一个轻量级Web开发框架,为什么说是轻量级的呢,因为它用短短几行代码就能运行起来,我们一起来看看最简单的flask框架。 安装Flask 在看Flask框架之前我们需要先安装flask模块,学过python的肯定都知道,…

shift 命令学习

文章目录 shift 命令学习1. shell 几个特殊变量2. shift 使用2.1 每次移动一个参数2.2 每次移动多个参数2.3 与 case 配合使用 shift 命令学习 参考连接:https://www.cnblogs.com/w-j-q/p/14863580.html 1. shell 几个特殊变量 #!/bin/bash echo "\$0:$0"…

SQL构造一个触发器audit_log

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 描述 构造一个触发…

SQL 字段类型属性

NULL属性 Null/Not Null 属性来限制数据是否可以为空 默认为 Null create table t_01 {username varchar(10) not null--... } Default属性 设置默认值 表字段的时候给定默认数据,在后续字段操作(数据新增)的时候系统没有检测到字段有数据…

TPM开启确认

TPM 2.0在系统中开启的确认 方法一 :鼠标右击开始菜单-运行(或按下键盘的WinR键),输入tpm.msc,然后 回车 弹出窗口 方法二:通过“设置>权限和安全>Windows安全中心>设备安全性” 点击Devices s…

Transformer相关的课程、视频和工具 - Transformer教程

大家好!今天我们来聊聊近年来在人工智能领域大放异彩的Transformer。这个模型自从被提出以来,就迅速成为自然语言处理(NLP)和其他机器学习任务中的热门工具。可能很多小伙伴对Transformer还是有些陌生,不知道如何学习和…

PE73_D_E6_BLE

产品参数 产品型号 PE73_D_E6_BLE 尺寸(mm) 176.2*137.15*80mm 显示技术 电子墨水屏双面显示 显示区域(mm) 163.2(H) * 97.92(V) 分辨率(像素) 800*480 外观颜色 银色 显示颜色 黑/白/红/黄/蓝/绿 视觉角度 180 工作温度 15-35℃ 产品重量 268g 电池容…

计网ip层重要面经总结

文章目录 127.0.0.1, localhost, 0.0.0.0有什么不同?ipv6还需要NAT吗?DNS查询服务器的基本流程浏览器输入一个URL到显示器显示的过程PING是怎么工作的?ipv4和ipv6究竟有哪些区别?什么是跨域,什么情况下会发生跨域问题&#xff1f…

学懂C#编程:高级开发技术——深入理解发布-订阅模式(Publisher-Subscriber Pattern)的实现

一、理解 发布-订阅模式(Publish-Subscribe Pattern) 机制 发布-订阅模式(Publish-Subscribe Pattern)是一种消息传递模式,它允许消息的发送者(发布者)和消息的接收者(订阅者&#x…

..质数..

先弄清楚我们在上小学时 学的概念。 1、什么是质因数? -质因数是指能够整除给定正整数的质数。每个正整数都可以被表示为几个质数的乘积,这些质数就是该数的质因数。质因数分解是将一个正整数分解成若干个质数相乘的过程。例如,数字 12…

Nginx服务优化

1 隐藏版本号* 方法一 :在http模块中添加行 #隐藏版本号 server_tokens off;方法二 :修改版本信息 进入源码安装包 cd /安装包根目录/src/core vim nginx.h 解注释以下行并修改 define NGINX_VERSION "Dont you guess!" difine NGINX_VER…

C:数据结构---算法

1.1排序算法 稳定排序 不稳定排序 ①冒泡排序(稳定) 比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对 ②选择排序 在未排序序列中找到最小(大…

Nature Communications|柔性高密度、高灵敏应变传感器阵列(柔性应变传感/界面调控/电子皮肤/柔性电子)

复旦大学武利民( Limin Wu)和李卓( Zhuo Li)团队,在《Nature Communications》上发布了一篇题为“High-density, highly sensitive sensor array of spiky carbon nanospheres for strain field mapping”的论文。论文内容如下: 一、 摘要 在工程应用中,准确地映射应变…

星环科技推出语料开发工具TCS,重塑语料管理与应用新纪元

5月30-31日,2024向星力未来数据技术峰会期间,星环科技推出一款创新的语料开发工具——星环语料开发工具TCS(Transwarp Corpus Studio),旨在通过全面的语料生命周期管理,极大提升语料开发效率,助…

批量提取PDF中表格内容

1 背景 从PDF文件获取表格中的数据,也是日常办公容易涉及到的一项工作。比如我们想获取某公司年报里面的表格数据,PDF动辄上百页的数据。 2 传统方法 一个一个从PDF表格中复制,然后粘贴到Excel表格中,效率太低了。 3 办公自动…

云计算【第一阶段(29)】远程访问及控制

一、ssh远程管理 1.1、ssh (secureshell)协议 是一种安全通道协议对通信数据进行了加密处理,用于远程管理功能SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,建立在应用层和传输层基础上的安全协议。SSH客…

深度学习中的正则化技术 - 噪声鲁棒性篇

序言 在深度学习的蓬勃发展中,模型的性能与泛化能力成为了研究者们关注的焦点。然而,实际应用中的数据往往伴随着各种噪声,这些噪声不仅来源于数据采集过程中的硬件限制,还可能由环境干扰、传输错误等因素引入。噪声的存在严重影…

synchronized关键字详解(全面分析)

目录 synchronized关键字详解1、synchronized关键字简介2、synchronized作用和使用场景作用使用场景①、用在代码块上(类级别同步)②、用在代码块上(对象级别同步)③、用在普通方法上(对象级别同步)④、用在静态方法上(类级别同步)总结: 3、synchronized底层原理&am…