当前位置: 首页 > news >正文

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开发(可以跳过)

一&#xff0c;项目概述 官网文档地址&#xff1a;http://doc.ruoyi.vip/ rouyi是一个后台管理系统&#xff0c;基于经典技术组合&#xff08;spring boot&#xff0c;apache shiro&#xff0c;mybatis&#xff0c;thymeleaf&#xff09;主要是让开发者注重专注业务&#xff0…...

双向链表及如何使用GLib的GList实现双向链表

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

ProCalun卡伦纯天然万用膏,全家的皮肤健康守护

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

FastAPI全方位分析:优劣尽显

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

【rust】rust基础代码案例

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

【深度学习】PromptFix:多功能AI修图

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

2024最新AI绘画系统软件(Midjourney)+GPT4文档分析总结,多模态识图理解,AI文生图/图生图/混图生图(图像混合)

一、前言 人工智能的快速发展已成为全球关注的焦点&#xff0c;其应用领域广泛&#xff0c;涵盖绘图、语言处理、视频编辑等。前沿技术不仅推动科技创新&#xff0c;还在艺术创作、内容生产和商业实践等方面展示出巨大潜力。例如&#xff0c;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&#xff09;数组 2&#xff09;集合 2.大小 1&#xff09;数组 2&#xff09;集合 3.访问速度 1&#xff09;数组 2&#xff09;集合 4.内存管理 1&#xff09;数组 2&#xff09;集合 5.使用场景 1&#xff09;数组 2&#xff0…...

ORACLE 19C 安装数据库补丁的详细过程

ORACLE 19c安装DB补丁&#xff1a; 1 确定OPatch的可用性&#xff1a;这里需要注意的是p6880880_190000_Linux-x86-64.zip是有版本对应区别的&#xff0c;需要注意你要打的补丁版本是否支持。 2 将原$ORACLE_HOME目录下的OPatch目录删除或者改名&#xff0c;比如说&#xff1a…...

tensorflow案例5--基于改进VGG16模型的马铃薯识别,准确率提升0.6%,计算量降低78.07%

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 前言 本次采用VGG16模型进行预测&#xff0c;准确率达到了98.875&#xff0c;但是修改VGG16网络结构&#xff0c; 准确率达到了0.9969&#xff0c;并且计算量…...

代码中的设计模式-策略模式

假如我们有一段代码,有很多的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学习项目-项目基础搭建

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

Python | Leetcode Python题解之第538题把二叉搜索树转换为累加树

题目&#xff1a; 题解&#xff1a; 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 提供的一种传输协议&#xff0c;用于在同一进程内的不同线程之间进行高效的通信。与其他传输协议&#xff08;如 tcp、ipc 等&#xff09;不同&#xff0c;inproc 专门针对线程间通信进行了优化&#xff0c;具有极低的延迟和开销。以下是 inproc 的底层原理和…...

spark的学习-03

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

一文了解Android SELinux

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

数据血缘追踪是如何在ETL过程中发挥作用?

在大数据环境下&#xff0c;数据血缘追踪具有重要意义&#xff0c;它能够帮助用户了解数据的派生关系、变换过程和使用情况&#xff0c;进而提高数据的可信度和可操作性。通过数据血缘追踪&#xff0c;ETL用户可以准确追溯数据的来源&#xff0c;快速排查数据异常和问题。 一、…...

跟我学C++中级篇——生产中如何调试程序

一、程序的BUG和异常 程序不是发布到生产环境就万事大吉了。没有人敢保证自己写的代码没有BUG&#xff0c;放心&#xff0c;说这种话的人&#xff0c;基本可以断定是小白。如果在开发阶段出现问题&#xff0c;还是比较好解决的&#xff0c;但是如果真到了生产上&#xff0c;可…...

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…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...