2023全网最详细的若依开源项目部署,将其部署到Linux操心系统中

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 2023全网最详细的若依开源项目部署,将其部署到Linux操心系统中

一.拉取若依项目源码

1.通过git仓库路径进行源码的拉取

在进行若依项目的拉取是要注意本地是否搭建本地maven仓库以及,配置国内镜像下载文件。并且在本地进行git的下载以及安装。

.项目下载:

RuoYi-Vue: 🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本 (gitee.com)

通过git 下载:

git clone  https://gitee.com/y_project/RuoYi.git     
 
//前后端分离版本
git clone https://gitee.com/y_project/RuoYi-Vue.git

克隆在本地仓库即可,在通过IDEA将下载的若依项目启动!

2.在本地启动若依项目

由于下载的为若依前后端分离版本的所以前端以及后端要分别启动

2.1后端启动

要配置redis,mysql 的账号以及密码 ,mysql的数据库名字

2.1.1配置redis

配置redis:端口号,请求地址,以及密码

2.1.2配置mysql

mysql的url路径,以及mysql的账号和密码

2.1.3正式启动后端

点击即可

出现这个即是代表项目后端成功启动

2.2前端启动

2.1.2npm install

通过 npm install 去下载前端Vux需要的js文件

2.通过 npm run dev 启动前端

出现这个界面(项目启动成功)只够通过鼠标+crtl即可点击前端

二.打包

本项目利用若依框架,并且在若依框架在开发时利用springBoot的服务器开发技术在部署的时候就会有两种方案

1.通过jar部署若依

本医疗项目基于若依项目进行开发,由于若依项目是一个非常常熟的框架。在他的本地目录下的和rouyi-admin目录同级的bin下有自带的打包工具,通过点击package.bat,在如图所示的文件下的target目录下会生成相对应的jar。

由于MobaXterm自带拖拽的功能在远程连接后将创建一个包用于若依jar的存储

在到 存储ruoyi项目的包中**通过 java -jar rouyo-admin.jar启动项目即可。代表后端项目以及成功启动

打包前端vue构建的项目并且部署在linex
在本地导入的ruoyi-ui下的通过命令控制来讲前端的页面进行打包输入以下指令zai
# 打包正式环境
npm run build:prod
# 打包预发布环境
npm run build:stage

在ruoyi-ui下会生成一个dis文件夹,再将dist文件放在指定的位置并且 copy包dist的更路径下即可

部署nginx

将nginx中的nginx.conf配置文件进行替换,替换后重新启动即可。代表前端以及部署好

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        charset utf-8;
        location / {
            root   dist的存放路径;
            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;
        }
    }
}

2.通过War的方式进行部署

修改ruoyi-adminpom.xml文件

修改ruoyi-admin中pom.xml,打成war包

然后将springboot中的自带的tomact去掉,不然在运行的过程中查看系统日志会出现两个佛祖!

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!--忽略掉内嵌的tomca 打包部署到tomcat -->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

然后按照图片下面操作即可

然后在项目所在本地目录下的ruoyi-admin的war通过拖拽的方式将war部署在tomact下的webapp包里面

1.2修改tomact配置文件

在server.xml中的Host,添加Context

<Context docBase="/root/javamo/sofware/apache-tomcat-8.5.20/webapps/ruoyi-admin" path="" reloadable="false" crossContext="true"/>

然后重启tomact即可

前端导包

在本地导入的ruoyi-ui下的通过命令控制来讲前端的页面进行打包输入以下指令zai

# 打包正式环境

npm run build:prod

# 打包预发布环境

npm run build:stage

在ruoyi-ui下会生成一个dis文件夹,再将dist文件放在指定的位置并且 copy包dist的更路径下即可

2.1配置xml在dist包下

需要注意的是在dist目录的文件夹下新建WEB-INF文件夹,并在里面添加web.xml文件,再将dist文件放在指定的位置并且 copy包dist的更路径下即可。配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
        http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
        version="3.1" metadata-complete="true">
     <display-name>Router for Tomcat</display-name>
     <error-page>
        <error-code>404</error-code>
        <location>/index.html</location>
    </error-page>
</web-app>

将nginx中的nginx.conf配置文件进行替换,替换后重新启动即可。代表前端以及部署好。(在其中部署了负载均衡,以及动态分离)

#user  nobody;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    
      upstream  tomcat_list {  #服务器集群名字
    server    127.0.0.1:8080  weight=1;   #服务器1   weight是权重的意思,权重越大,分配的概率越大。
    server    127.0.0.1:8082  weight=3; #服务器2   weight是权重的意思,权重越大,分配的概率越大
} 
    
    server {
        listen       80;
        server_name  localhost;
        charset utf-8;
        location / {
            root   /usr/local/mypro/dist;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }
            location  ^~/api/ {
        proxy_pass http://tomcat_list/;
    }
        
        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 -s reload 重启即可

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
关系型数据库 MySQL Linux
Linux下怎么快速部署MySQL服务,并使用
Linux下怎么快速部署MySQL服务,并使用
13 5
|
3天前
|
监控 Linux 数据处理
lslocks:Linux系统中的锁信息查看利器
`lslocks`是Linux工具,用于查看系统上的文件锁信息,帮助诊断进程同步问题。它显示持有锁的进程、锁类型(如POSIX、flock)和状态。通过简洁的输出,用户能识别死锁和资源争用,优化性能。结合其他命令如`grep`和`awk`可增强分析能力。需适当权限运行,定期监控以预防并发访问问题,处理死锁时要谨慎。
|
3天前
|
监控 Linux 数据处理
探索Linux中的`lsmem`命令:深入了解系统内存布局
`lsmem`是Linux命令,用于显示系统内存布局和大小,帮助管理员和开发者理解内存使用情况。它提供详细输出,包括内存块的大小、范围、类型和关联,支持多种格式展示,如树状图。命令参数如`-h`显示帮助,`-t`以树形展示,`--human-readable`使大小更易读。需root权限运行,常与`free`、`vmstat`等工具结合使用,用于监控和优化内存。注意不同发行版可能存在兼容性差异。
|
5天前
|
存储 监控 安全
深入探索Linux的journalctl命令:系统日志的利器
**journalctl 深入解析:Linux 系统日志的强大工具** journalctl 是 Linux 中用于查询和管理 systemd 日志的命令行工具,与 systemd-journald 配合收集广泛的信息,包括内核消息和服务日志。它提供实时追踪、过滤、导出等功能,如 `-f` 实时监控,`-u` 过滤特定服务日志,`-k` 显示内核消息,`--since` 和 `--until` 选择时间范围。在实际应用中,结合权限管理、日志空间控制和有效过滤,journalctl 成为系统管理员诊断和优化系统的得力助手。
|
3天前
|
关系型数据库 MySQL Shell
【权限提升】Linux系统&环境变量&定时任务&权限配置不当&MDUT自动化
【权限提升】Linux系统&环境变量&定时任务&权限配置不当&MDUT自动化
|
3天前
|
存储 安全 Linux
一行代码使Linux系统崩溃?
一行代码使Linux系统崩溃?
11 1
|
4天前
|
存储 关系型数据库 MySQL
MySQL数据库进阶第一篇(存储引擎与Linux系统上安装MySQL数据库)
MySQL数据库进阶第一篇(存储引擎与Linux系统上安装MySQL数据库)
|
7天前
|
网络协议 Linux 网络安全
Linux命令hostnamectl:掌握系统主机信息的利器
`hostnamectl`是Linux系统管理的关键工具,用于查看和设置主机名、内核信息等。它集成在`systemd`中,通过修改配置文件交互。命令特点包括综合显示多种信息、简单语法和设置功能。例如,`hostnamectl status`显示系统详情,`sudo hostnamectl set-hostname NEWHOSTNAME`用于更改主机名。使用时注意权限、备份配置、更新网络和重启相关服务,避免频繁更改。
|
7天前
|
Java Linux Spring
在 Linux 系统中将 Spring Boot 应用作为系统服务运行
【6月更文挑战第11天】最近由于一些原因,服务器经常会重启,每次重启后需要手动启动 Spring Boot 的工程,因此我需要将其配置成开启自启动的服务。
26 1
|
9天前
|
Linux 测试技术 开发者
【Docker项目实战】使用Docker部署instantbox临时Linux系统环境搭建工具
【6月更文挑战第13天】使用Docker部署instantbox临时Linux系统环境搭建工具
19 3