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

CentOS 7 linux系统从无到有部署项目

环境部署操作手册

一、Maven安装与配置

1. 下载与解压

  • 下载地址:https://maven.apache.org/download.cgi?spm=5238cd80.38b417da.0.0.d54c32cbnOpQh2&file=download.cgi
  • 上传并解压解压命令:

tar -zxvf apache-maven-3.9.9-bin.tar.gz -C /usr/local/

2. 环境变量配置

编辑 /etc/profile 文件,添加以下内容:

##### MAVEN #####

export MAVEN_HOME=/usr/local/apache-maven-3.9.9

export PATH=${MAVEN_HOME}/bin:$PATH

刷新环境变量:

source /etc/profile


二、JDK安装与配置

1. 安装JDK 1.8

sudo yum install java-1.8.0-openjdk-devel

2. 环境变量配置

编辑 /etc/profile 文件,添加以下内容:

##### JDK #####

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

export PATH=$PATH:$JAVA_HOME/bin

刷新环境变量:

source /etc/profile


三、Nacos单机部署

1. 下载与启动

  • 下载地址:Nacos 快速开始 | Nacos 官网
  • 本地解压上传服务器
  • 进入nacos的bin目录执行单机模式启动:

sh startup.sh -m standalone

2. 服务管理

  • 停止服务:

ps aux | grep nacos

kill -9 <PID>

3. 防火墙配置

3.1、开放 8848端口

sudo firewall-cmd --zone=public --add-port=8848/tcp --permanent

sudo firewall-cmd --reload

3.2、访问地址:
http://<服务器IP>:8848/nacos


四、Nginx安装与配置

1. 下载与编译

1.1、下载命令

wget http://nginx.org/download/nginx-1.24.0.tar.gz

1.2、解压命令

tar -zxvf nginx-1.24.0.tar.gz

1.3、进入解压后的文件夹

cd nginx-1.24.0

1.4、安装依赖项

sudo yum install gcc pcre-devel zlib-devel openssl-devel -y

1.5、预编译

./configure

1.6、编译和安装

make && make install

2. 系统服务配置

2.1、创建服务文件 /usr/lib/systemd/system/nginx.service并配置系统服务,内容如下:

复制以下命令执行:

cat > /usr/lib/systemd/system/nginx.service << \EOF

[Unit]

Description=The NGINX HTTP and reverse proxy server

After=network.target

 

[Service]

Type=forking

PIDFile=/run/nginx.pid

ExecStartPre=/usr/sbin/nginx -t

ExecStart=/usr/sbin/nginx

ExecReload=/usr/sbin/nginx -s reload

KillMode=process

Restart=on-failure

PrivateTmp=true

 

[Install]

WantedBy=multi-user.target

EOF

2.2、重新读取systemd的配置文件
sudo systemctl daemon-reload

2.3、设置nginx开机自启

sudo systemctl enable nginx

2.4、nginx如果未开启开机自启可以使用以下启动暂停命令

启动nginx

sudo systemctl start nginx

停止nginx

sudo systemctl stop nginx

重启nginx

sudo systemctl reload nginx

3. 前端路由配置(示例)

80端口为列,在Nginxnginx.conf配置文件中调整(/usr/gqms/dist为前端存放路径):

location / {

    root /usr/gqms/dist;

    index index.html;

    if (!-e $request_filename) {

        rewrite ^(.*)$ /index.html?s=$1 last;

        break;

    }

}

五、Redis安装

1. 下载与编译

1.1、下载

wget http://download.redis.io/releases/redis-6.2.10.tar.gz

1.2、解压

tar -xzvf redis-6.2.10.tar.gz

1.3、进入解压后文件夹内

cd redis-6.2.10

1.4、安装依赖项

yum install -y gcc-c++

1.5、编译安装

make

sudo make install PREFIX=/usr/local/redis BINDIR=/usr/local/redis/bin ETCDIR=/usr/local/redis/etc

2. 配置

2.1、将redis启动信息存放到 /usr/local/redis 便于管理

cd /usr/local/redis

如果/usr/local/redis下面没有etc文件夹则创建一个 /usr/local/redis/etc 文件夹

将原redis-6.2.10里面的 redis.conf 复制到 /usr/local/redis/etc/

cp /usr/redis-6.2.10/redis.conf /usr/local/redis/etc

2.2、修改配置信息。编辑/usr/local/redis/etc/redis.conf可以修改密码和端口

密码

requirepass auth

端口

port 6379

将Bing ip 注释

#bind 127.0.0.1 -::1

来自其他网络地址的连接请求 将no 改为 yes

protected-mode yes

默认是前台模式,需要修改为 后台模式 不然关闭终端会杀死redis。将yes 改为 no

daemonize no

aof文件默认不启用 如果需要可以改为 yes

appendonly no

3. 启动服务

在/usr/local/redis目录下执行以下命令启动redis

./bin/redis-server ./etc/redis.conf

确认是否启动成功

ps -ef | grep redis

六、项目打包和nacos配置

1. nacos上创建一个test空间

2. 配置列表test的命名空间内导入nacos配置

3. 修改nacos中各服务的数据库和redis配置

4.修改项目根目录下的pom.xml文件里面的nacos配置

5.选择对应的打包分支进行打包

6.将打好的jar上传服务器执行命令启动

所有服务的启动命令

nohup java -Xms1024m -Xmx1024m  -jar /usr/gqms/jeecg-cloud-gateway-2.4.6.jar > /usr/gqms/logs/jeecg-cloud-gateway.log 2>&1 &

系统登录(以80端口为列):
http://xxxxxxxxxxx/
登录帐号:xxxx/xxxxx

附录

  • 验证命令‌:
    • mvn -v → 检查Maven版本
    • java -version → 检查JDK版本
    • nginx -v → 检查Nginx版本
    • redis-cli ping → 检查Redis连通性
  • 注意事项‌:
    • 所有命令需在管理员权限下执行(必要时使用sudo)。
    • 配置文件修改后需重启服务生效。
    • 防火墙配置需与实际网络环境匹配。
    • 如果启动成功,却访问不了,可能是需要开放对应端口
    • 项目DB文件和nacos配置请看项目工程<nacos配置>目录下解压项目里面的

相关文章:

CentOS 7 linux系统从无到有部署项目

环境部署操作手册 一、Maven安装与配置 1. 下载与解压 下载地址&#xff1a;https://maven.apache.org/download.cgi?spm5238cd80.38b417da.0.0.d54c32cbnOpQh2&filedownload.cgi上传并解压解压命令&#xff1a; tar -zxvf apache-maven-3.9.9-bin.tar.gz -C /usr/loc…...

李飞飞团队新作WorldScore:“世界生成”能力迎来统一评测,3D/4D/视频模型同台PK

从古老神话中对世界起源的幻想&#xff0c;到如今科学家们在实验室里对虚拟世界的构建&#xff0c;人类探索世界生成奥秘的脚步从未停歇。如今&#xff0c;随着人工智能和计算机图形学的深度融合&#xff0c;我们已站在一个全新的起点&#xff0c;能够以前所未有的精度和效率去…...

如何在米尔-STM32MP257开发板上部署环境监测系统

本文将介绍基于米尔电子MYD-LD25X开发板&#xff08;米尔基于STM35MP257开发板&#xff09;的环境监测系统方案测试。 摘自优秀创作者-lugl4313820 一、前言 环境监测是当前很多场景需要的项目&#xff0c;刚好我正在论坛参与的一个项目&#xff1a;Thingy:91X 蜂窝物联网原型…...

MySQL之SQL优化

目录 1.插入数据 2.大批量插入数据 3.order by优化 4.group by优化 5.limit优化 6.count优化 count用法 7.update优化 1.插入数据 如果我们需要一次性往数据库表中插入多条记录&#xff0c;可以从以下三个方面进行优化 第一个:批量插入数据 Insert into tb_test va…...

python_level1.2

目录 一、变量 例如&#xff1a;小正方形——>大正方形 【1】第一次使用这个变量&#xff0c;所以说&#xff1a;定义一个变量length&#xff1b; 【2】&#xff1a;是赋值符号&#xff0c;不是等于符号。&#xff08;只有赋值&#xff0c;该变量才会被创建&#xff09;…...

Linux、Kylin OS挂载磁盘,开机自动加载

0.实验环境&#xff1a; 1.确定挂载目录&#xff0c;如果没有使用mkdir 进行创建&#xff1a; mkdir /data 2.查看磁盘 lsblk #列出所有可用的块设备df -T #查看磁盘文件系统类型 3.格式化成xfs文件系统 (这里以xfs为例&#xff0c;ext4类似) mkfs.xfs /dev/vdb 4.挂载到…...

FPGA-VGA

目录 前言 一、VGA是什么&#xff1f; 二、物理接口 三、VGA显示原理 四、VGA时序标准 五、VGA显示参数 六、模块设计 七、波形图设计 八、彩条波形数据 前言 VGA的FPGA驱动 一、VGA是什么&#xff1f; VGA&#xff08;Video Graphics Array&#xff09;是IBM于1987年推出的…...

java的lambda和stream流操作

Lambda 表达式 ≈ 匿名函数 &#xff08;Lambda接口&#xff09;函数式接口&#xff1a;传入Lambda表达作为函数式接口的参数 函数式接口 只能有一个抽象方法的接口 Lambda 表达式必须赋值给一个函数式接口&#xff0c;比如 Java 8 自带的&#xff1a; 接口名 作用 Functio…...

【嵌入式】【阿里云服务器】【树莓派】学习守护进程编程、gdb调试原理和内网穿透信息

目录 一. 守护进程的含义及编程实现的主要过程 1.1守护进程 1.2编程实现的主要过程 二、在树莓派中通过三种方式创建守护进程 2.1nohup命令创建 2.2fork()函数创建 2.3daemon()函数创建 三、在阿里云中通过三种方式创建守护进程 3.1nohup命令创建 3.2fork()函数创建 …...

数据结构学习笔记 :树与二叉树详解

目录 树的基本概念二叉树的定义与特性二叉树的存储结构 3.1 顺序存储 3.2 链式存储二叉树遍历特殊二叉树类型总结与应用场景 一、树的基本概念 核心定义 树&#xff1a;由根节点和若干子树构成的层次结构。叶子节点&#xff08;终端节点&#xff09;&#xff1a;没有子节点的…...

前沿篇|CAN XL 与 TSN 深度解读

引言 1. CAN XL 标准演进与设计目标 2. CAN XL 物理层与帧格式详解 3. 时间敏感网络 (TSN) 关键技术解析 4. CAN XL + TSN 在自动驾驶领域的典型应用...

七、LangChain Tool类参数对接机制解析:基于Pydantic的类型安全与流程实现

LangChain 的 Tool 类(包括 BaseTool 和 StructuredTool)通过 参数校验、输入解析、函数调用 的流程,将外部函数与 Agent 的逻辑对接。以下是其内部逻辑的详细解析: 1. 工具与函数对接的核心机制 (1) 工具的定义方式 LangChain 提供了两种主要方式定义工具: 继承 BaseTo…...

Spring-AI-alibaba 结构化输出

1、将模型响应转换为 ActorsFilms 对象实例&#xff1a; ActorsFilms package com.alibaba.cloud.ai.example.chat.openai.entity;import java.util.List;public record ActorsFilms(String actor, List<String> movies) { } GetMapping("/toBean")public Ac…...

AI大模型科普:从零开始理解AI的“超级大脑“,以及如何用好提示词?

大家好&#xff0c;小机又来分享AI了。 今天分享一些新奇的东西&#xff0c; 你有没有试过和ChatGPT聊天时&#xff0c;心里偷偷犯嘀咕&#xff1a;"这AI怎么跟真人一样对答如流&#xff1f;它真的会思考吗&#xff1f;" 或者刷到技术文章里满屏的"Token"…...

STM32单片机入门学习——第40节: [11-5] 硬件SPI读写W25Q64

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难&#xff0c;但我还是想去做&#xff01; 本文写于&#xff1a;2025.04.18 STM32开发板学习——第一节&#xff1a; [1-1]课程简介第40节: [11-5] 硬件SPI读…...

【Java学习笔记】关键字汇总

Java 关键字汇总 用于定义数据类型的关键字&#xff1a; classinterfaceenumbyteshortintlongfloatdoublecharbooleanvoid 用于定义数据值的关键字&#xff1a; truefalsenull 用于定义流程控制的关键字&#xff1a; ifelseswitchcasedefaultwhiledoforbreakcontinueretu…...

langgraph框架之初识

1.什么是langgraph&#xff1f; LangGraph 是一个用于构建可控代理的底层编排框架。在AI中&#xff0c;代理也就是执行动作的智能体&#xff0c;也就是agent。使用这个框架可以构建一个可以自由控制的智能执行体&#xff0c;它可以帮我们做许多事情&#xff0c;如下&#xff1…...

如何将 .txt 文件转换成 .md 文件

一、因为有些软件上传文件的时候需要 .md 文件&#xff0c;首先在文件所在的目录中&#xff0c;点击“查看”&#xff0c;然后勾选上“文件扩展名”&#xff0c;这个时候该目录下的所有文件都会显示其文件类型了。 二、这时直接对目标的 .txt 文件进行重命名&#xff0c;把后缀…...

pdfjs库使用记录1

import React, { useEffect, useState, useRef } from react; import * as pdfjsLib from pdfjs-dist; // 设置 worker 路径 pdfjsLib.GlobalWorkerOptions.workerSrc /pdf.worker.min.js; const PDFViewer ({ url }) > { const [pdf, setPdf] useState(null); const […...

Qt 创建QWidget的界面库(DLL)

【1】新建一个qt库项目 【2】在项目目录图标上右击&#xff0c;选择Add New... 【3】选择模版&#xff1a;Qt->Qt设计师界面类&#xff0c;选择Widget&#xff0c;填写界面类的名称、.h .cpp .ui名称 【4】创建C调用接口&#xff08;默认是创建C调用接口&#xff09; #ifnd…...

Django REST framework 并结合 `mixin` 的示例

下面为你提供一个使用 Django REST framework 并结合 mixin 的示例,该示例将实现一个简单的图书管理 API。 项目需求 我们要创建一个图书管理系统的 API,支持对图书信息的创建、读取、更新和删除操作。 实现步骤 1. 项目初始化 首先,确保你已经安装了 Django 和 Django…...

linux查看及修改用户过期时间

修改用户有效期 密码到期时间 sudo chage -E 2025-12-31 username sudo chage -M 180 username sudo chage -d $(date %F) username 查询用户密码到期时间 for user in $(cat /etc/passwd |cut -d: -f1); do echo $user; chage -l $user | grep "Password expires"; …...

Vue.directive自定义v-指令

翻阅文章有感&#xff0c;记录学习 vue前端菜单权限控制_vue权限管理菜单思路-CSDN博客 一、定义&#xff1a;Vue.directive是Vue框架中给开发者用于注册自定义指令和返回已注册指令的API 二、基本语法&#xff1a; // 注册 Vue.directive(my-directive, {bind: function () …...

AI Agent 元年,于 2025 开启

私人博客传送门 AI Agent 元年&#xff0c;于 2025 开启 | 魔筝炼药师...

Django 自带开发服务器

$ python manage.py runserver $ python manage.py runserver 666 # 用 666 端口 $ python manage.py runserver 0.0.0.0:8000 # 让局域网内其他客户端也可访问 $ python manage.py runserver --skip-checks # 跳过检查自动检查 $ python manage.py runserver --…...

Spring 数据库编程

Spring JDBC 传统的JDBC在操作数据库时&#xff0c;需要先打开数据库连接&#xff0c;执行SQL语句&#xff0c;然后封装结果&#xff0c;最后关闭数据库连接等资源。频繁的数据库操作会产生大量的重复代码&#xff0c;造成代码冗余&#xff0c;Spring的JDBC模块负责数据库资源…...

进阶篇|CAN FD 与性能优化

引言 1. CAN vs. CAN FD 对比 2. CAN FD 帧结构详解...

CTF--各种绕过哟

一、原网页&#xff1a; 二、步骤&#xff1a; 1.源代码&#xff1a; <?php highlight_file(flag.php); $_GET[id] urldecode($_GET[id]); $flag flag{xxxxxxxxxxxxxxxxxx}; if (isset($_GET[uname]) and isset($_POST[passwd])) {if ($_GET[uname] $_POST[passwd])pr…...

【Pandas】pandas DataFrame where

Pandas2.2 DataFrame Indexing, iteration 方法描述DataFrame.head([n])用于返回 DataFrame 的前几行DataFrame.at快速访问和修改 DataFrame 中单个值的方法DataFrame.iat快速访问和修改 DataFrame 中单个值的方法DataFrame.loc用于基于标签&#xff08;行标签和列标签&#…...

嵌入式ARM RISCV toolchain工具 梳理arm-none-eabi-gcc

嵌入式TOOLchain工具 梳理 简介 本文总结和梳理一下一些toolchain的规则和原理&#xff0c;方便后续跨平台的时候&#xff0c;给大家使用toolchain做一个参考。 解释如何理解arm-none-eabi-gcc等含义&#xff0c;以及如何一看就知道该用什么编译器。 当然如果有哪里写的不是…...