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…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
MySQL 主从同步异常处理
阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示ÿ…...
