day20-21之间的项目实战:若依ruoyi开发(可以跳过)
一,项目概述
官网文档地址:http://doc.ruoyi.vip/
rouyi是一个后台管理系统,基于经典技术组合(spring boot,apache shiro,mybatis,thymeleaf)主要是让开发者注重专注业务,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量。
系统要求
- JDK>=1.8
- myslq>=5.7
- maven>=3.8
二,开发环境搭建(前后分离)
后端项目
1,centos9一台
2,环境(前后分离)后端环境(java):jdk,mysql,Maven,redis,git前端环境(vue):nodejs,npm,nginx防火墙,yum源,时间同步hostnamectl -set-hostname prosu - rootsystemctl stop firewalld && systemctl disable firewalldsetenforce 0 && sed -i '/SELINUX=enforcing/SELINUX=disable/g' /etc/selinux/config
3,拉取后端最新的代码
4,使用Maven对后端源码进行打包
5,拉取前端最新代码
6,使用npm对前端代码打包,将包放入nginx中运行
1,centos9一台
2,环境(前后分离)
-
后端环境(java):jdk,mysql,Maven,redis,git
-
前端环境(vue):nodejs,npm,nginx
-
防火墙,yum源,时间同步
-
hostnamectl -set-hostname prosu - rootsystemctl stop firewalld && systemctl disable firewalldsetenforce 0 && sed -i '/SELINUX=enforcing/SELINUX=disable/g' /etc/selinux/config
-
3,安装git,拉取后端最新的代码
yum -y install git
源码地址:https://gitee.com/y_project/RouYi-Vue
#git config --global user.name ly
#git config --global user.email xxxxxxxxxx@qq.com
#目前github已经不支持密码输入,只支持api验证或者叫令牌验证(csdn一下吧)
cd /usr/local/
git clone https://gitee.com/y_project/RouYi-Vue.git
4,安装jdk,配置环境变量
tar -zxvf jdk-xxx.tar.gz -C /usr/local
echo "export JAVA_HOME=/usr/local/jdk-xxx" /etc/profile
echo "export PATH=${JAVA_HOME}/bin:$PATH" /etc/profile
source /etc/profile
java -version
上面是手动的
--------------------------------------
这是自动的
sudo dnf update
sudo dnf install java-17-openjdk
java -version
5,安装Maven配置环境
这是自动的(所有的安装,用yum和dnf都可以)
sudo dnf update
sudo dnf install maven
mvn -v
6,安装mysql,执行初始化sql脚本
在 CentOS 9 上安装 MySQL 并执行初始化 SQL 脚本,可以按照以下步骤完成:### 步骤 1:安装 MySQL1. **添加 MySQL 官方 Yum 仓库**:CentOS 默认不包含 MySQL 官方的最新版本仓库,可以先添加官方仓库。sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm2. **安装 MySQL Server**:使用 `dnf` 命令安装 MySQL:sudo dnf install mysql-server3. **启动并启用 MySQL 服务**:sudo systemctl start mysqldsudo systemctl enable mysqld4. **获取 MySQL 临时密码**:安装后,MySQL 会生成一个临时密码,存放在 `/var/log/mysqld.log` 文件中。可以使用以下命令查看:sudo grep 'temporary password' /var/log/mysqld.log5. **执行安全性设置**:使用临时密码登录并配置 MySQL 的安全设置:mysql_secure_installation根据提示设置新密码,并配置其他安全选项。### 步骤 2:执行初始化 SQL 脚本1. **登录 MySQL**:使用新设置的密码登录 MySQL:mysql -u root -p2. **执行初始化 SQL 脚本**:假设你有一个初始化 SQL 脚本文件(例如 `init.sql`),可以使用以下命令导入它:mysql -u root -p < /usr/local/RuoYi-Vue/sql/ry_20240629.sql或者自己建库用source 路径导入3. **验证初始化是否成功**:进入 MySQL,检查数据库和表是否已创建:SHOW DATABASES;
7,安装redis
在 CentOS 9 上安装 Redis,可以通过以下步骤进行:### 步骤 1:安装 Redis1. **安装 EPEL 仓库**:Redis 通常包含在 EPEL(Extra Packages for Enterprise Linux)仓库中。首先安装 EPEL 仓库:sudo dnf install epel-release2. **安装 Redis**:使用 `dnf` 命令安装 Redis:sudo dnf install redis3. **启动并启用 Redis 服务**:安装完成后,启动 Redis 服务并将其设置为开机启动:sudo systemctl start redissudo systemctl enable redis### 步骤 2:验证 Redis 安装1. **检查 Redis 服务状态**:使用以下命令确认 Redis 服务是否已成功启动:sudo systemctl status redis如果 Redis 正常运行,会显示类似 `active (running)` 的状态。2. **验证 Redis 是否可以连接**:通过 `redis-cli` 命令行客户端连接 Redis:redis-cli在 Redis 提示符下,运行以下命令测试:ping如果 Redis 正常运行,应该返回:PONG### 步骤 3:配置 Redis(可选)如果需要自定义 Redis 配置,可以编辑 Redis 配置文件:sudo nano /etc/redis.conf修改配置后,保存并重新启动 Redis 服务:sudo systemctl restart redis### 步骤 4:开启防火墙端口(可选)如果你打算远程连接 Redis,需要确保防火墙允许 Redis 使用的默认端口 6379。1. **允许端口 6379**:sudo firewall-cmd --permanent --add-port=6379/tcpsudo firewall-cmd --reload### 步骤 5:禁用 Redis 外部访问(可选)为了提高安全性,可以通过修改配置文件禁用外部访问。1. **修改配置文件**:在 `/etc/redis.conf` 中,找到 `bind` 设置并更改为:bind 0.0.0.0protected-mode nodaemonize yes2. **重启 Redis**:修改配置后,重新启动 Redis 服务:sudo systemctl restart redis
8,修改rouyi配置
cd /usr/local/RouYi-Vue/rouyi-admin/src/main/resources
application-druid.yml(数据库配置文件)
application.yml(后端redis程序配置文件)
9,后端打包
到/usr/local/RuoYi-Vue下(这里有一个pom文件),执行mvn install
到/usr/local/RuoYi-Vue/ruoyi-admin文件夹下,更准确的是在pom.xml文件处
mvn package(会创建target文件夹,进入里面有一个rouyi-admin.jar就是我们要的了)
现在把他cp到家目录
用java -jar ruoyi-admin.jar运行
前端项目(就不写了意义不大)
相关文章:

day20-21之间的项目实战:若依ruoyi开发(可以跳过)
一,项目概述 官网文档地址:http://doc.ruoyi.vip/ rouyi是一个后台管理系统,基于经典技术组合(spring boot,apache shiro,mybatis,thymeleaf)主要是让开发者注重专注业务࿰…...

双向链表及如何使用GLib的GList实现双向链表
双向链表是一种比单向链表更为灵活的数据结构,与单向链表相比可以有更多的应用场景,本文讨论双向链表的基本概念及实现方法,并着重介绍使用GLib的GList实现单向链表的方法及步骤,本文给出了多个实际范例源代码,旨在帮助…...

ProCalun卡伦纯天然万用膏,全家的皮肤健康守护
受季节交替、生活环境变化、空气污染等方面因素的影响,加上作息不规律导致的免疫力降低,我们或多或少会出现一些如湿疹、痤疮、瘙痒之类的皮肤问题,且反复概率很高。很多人盲目用药,甚至诱发激素依赖性皮炎。所以近年来࿰…...

FastAPI全方位分析:优劣尽显
近年来,随着技术的飞速发展,快速构建高性能API的需求越来越强烈。Python作为一个广泛使用的编程语言,也在这一领域下涌现出了许多优秀的框架。FastAPI便是其中一颗璀璨的新星。 FastAPI以其卓越的性能和独特的功能吸引了众多开发者。本文将深入剖析FastAPI的各个方面,详细…...

【rust】rust基础代码案例
文章目录 代码篇HelloWorld斐波那契数列计算表达式(加减乘除)web接口 优化篇target/目录占用一个g,仅仅一个actix的helloWorld demo升级rust版本, 通过rustupcargo换源windows下放弃吧,需要额外安装1g的toolchain并且要…...

【深度学习】PromptFix:多功能AI修图
PromptFix:你来提示,我们修图 NeurIPS 2024 最近,在计算机视觉和图像处理领域,一个名为PromptFix的新项目引起了广泛关注。PromptFix是一个基于PyTorch实现的开源项目,旨在根据用户的自然语言指令,对受损或需要处理的图像进行智能修复和优化。 本文将详细介绍PromptFix…...

2024最新AI绘画系统软件(Midjourney)+GPT4文档分析总结,多模态识图理解,AI文生图/图生图/混图生图(图像混合)
一、前言 人工智能的快速发展已成为全球关注的焦点,其应用领域广泛,涵盖绘图、语言处理、视频编辑等。前沿技术不仅推动科技创新,还在艺术创作、内容生产和商业实践等方面展示出巨大潜力。例如,AI语言模型显著提升了内容自动生成、…...

【信号处理】基于联合图像表示的深度学习卷积神经网络
Combined Signal Representations for Modulation Classification Using Deep Learning: Ambiguity Function, Constellation Diagram, and Eye Diagram 信号表示 Ambiguity Function(AF) 模糊函数描述了信号的两个维度(dimensions):延迟(delay)和多普勒(Doppler)。 …...
C#基础-区分数组与集合
目录 区分数组与集合 1.定义 1)数组 2)集合 2.大小 1)数组 2)集合 3.访问速度 1)数组 2)集合 4.内存管理 1)数组 2)集合 5.使用场景 1)数组 2࿰…...
ORACLE 19C 安装数据库补丁的详细过程
ORACLE 19c安装DB补丁: 1 确定OPatch的可用性:这里需要注意的是p6880880_190000_Linux-x86-64.zip是有版本对应区别的,需要注意你要打的补丁版本是否支持。 2 将原$ORACLE_HOME目录下的OPatch目录删除或者改名,比如说:…...

tensorflow案例5--基于改进VGG16模型的马铃薯识别,准确率提升0.6%,计算量降低78.07%
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前言 本次采用VGG16模型进行预测,准确率达到了98.875,但是修改VGG16网络结构, 准确率达到了0.9969,并且计算量…...
代码中的设计模式-策略模式
假如我们有一段代码,有很多的if else function executeAction(type) {if (type A) {console.log(Action A);} else if (type B) {console.log(Action B);} else if (type C) {console.log(Action C);} else {console.log(Unknown action);} }executeAction(A); // 输出: Ac…...

后端Node学习项目-项目基础搭建
前言 各位好,我是前端SkyRain。最近为了响应公司号召,开始对后端知识的学习,作为纯粹小白,记录下每一步的操作流程。 项目仓库:https://gitee.com/sky-rain-drht/drht-node 因为写了文档,代码里注释不是很…...

Python | Leetcode Python题解之第538题把二叉搜索树转换为累加树
题目: 题解: class Solution:def convertBST(self, root: TreeNode) -> TreeNode:def getSuccessor(node: TreeNode) -> TreeNode:succ node.rightwhile succ.left and succ.left ! node:succ succ.leftreturn succtotal 0node rootwhile nod…...
【ZeroMQ 】ZeroMQ中inproc优势有哪些?与其它传输协议有哪些不同?
inproc 是 ZeroMQ 提供的一种传输协议,用于在同一进程内的不同线程之间进行高效的通信。与其他传输协议(如 tcp、ipc 等)不同,inproc 专门针对线程间通信进行了优化,具有极低的延迟和开销。以下是 inproc 的底层原理和…...

spark的学习-03
RDD的创建的两种方式: 方式一:并行化一个已存在的集合 方法:parallelize 并行的意思 将一个集合转换为RDD 方式二:读取外部共享存储系统 方法:textFile、wholeTextFile、newAPIHadoopRDD等 读取外部存储系统的数…...

一文了解Android SELinux
在Android系统中,SELinux(Security-Enhanced Linux)是一个增强的安全机制,用于对系统进行强制访问控制(Mandatory Access Control,MAC)。它限制了应用程序和进程的访问权限,提供了更…...

数据血缘追踪是如何在ETL过程中发挥作用?
在大数据环境下,数据血缘追踪具有重要意义,它能够帮助用户了解数据的派生关系、变换过程和使用情况,进而提高数据的可信度和可操作性。通过数据血缘追踪,ETL用户可以准确追溯数据的来源,快速排查数据异常和问题。 一、…...
跟我学C++中级篇——生产中如何调试程序
一、程序的BUG和异常 程序不是发布到生产环境就万事大吉了。没有人敢保证自己写的代码没有BUG,放心,说这种话的人,基本可以断定是小白。如果在开发阶段出现问题,还是比较好解决的,但是如果真到了生产上,可…...
Python爬虫实战 | 爬取网易云音乐热歌榜单
网易云音乐热歌榜单爬虫实战 环境准备 Python 3.xrequests 库BeautifulSoup 库 安装依赖 pip install requests beautifulsoup4代码 import requests from bs4 import BeautifulSoupdef get_cloud_music_hot_songs():url "http://music.163.com/#/discover/playlist…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...

网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

实战设计模式之模板方法模式
概述 模板方法模式定义了一个操作中的算法骨架,并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下,重新定义算法中的某些步骤。简单来说,就是在一个方法中定义了要执行的步骤顺序或算法框架,但允许子类…...

Android写一个捕获全局异常的工具类
项目开发和实际运行过程中难免会遇到异常发生,系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler,它是Thread的子类(就是package java.lang;里线程的Thread)。本文将利用它将设备信息、报错信息以及错误的发生时间都…...