Linux的基础指令和环境部署,项目部署实战(下)

目录

上一篇:Linxu的基础指令和环境部署,项目部署实战(上)-CSDN博客

1. 搭建Java部署环境

1.1 apt

apt常用命令

列出所有的软件包

更新软件包数据库

安装软件包

移除软件包

1.2 JDK

1.2.1. 更新

1.2.2. 安装openjdk()

1.2.3.检查安装jdk成功

1.3 MySQL

1.3.1 使用apt安装MySQL

1.3.2 查看MySQL状态

1.3.3 设置密码

        1.3.3.1 连接mysql服务器

        1.3.3.2 使用 alter user 命令修改密码(自己能够记住就行)

2.部署web项目到Linux

2.1 环境配置

2.1.1 数据准备

2.1.2 程序配置文件修改

2.1.3 多平台文件配置

2.2 构建项目并打包

在本地使用maven进行打包

2.3 上传Jar包到服务器, 并运行

1. 上传Jar包直接拖动打好的jar包到xshell窗口即可完成文件的上传

2. 安装lrzsz

3.运行程序

4.开放端口

3.常见问题

1.检查程序是否启动

2.杀掉进程

1.查看目前的所有进程

2.杀死进程


上一篇:Linxu的基础指令和环境部署,项目部署实战(上)-CSDN博客

1. 搭建Java部署环境

1.1 apt

apt(Advanced Packing Tool),Linux软件包管理工具。用于Ubuntu,Debian和相关的Linux发行版上安装,更新,删除和管理deb软件包。

大多数 apt  命令都要以有sudo权限的用户运行。

apt常用命令
列出所有的软件包

1. apt list

 这个命令输出所有的工具包列表,内容非常多,可以用 grep 命令过滤。

        1. apt list |grep "java"

更新软件包数据库

1. sudo apt-get update  #运行此命令时, 您将看到从各种服务器检索到的软件包信息.

实际上 apt 它通过维护一个软件包的数据库来管理和安装软件。这个数据库包含了系统可用的软件包及其版本信息。

如果数据库没有更新,系统将无法检测到新的软件包版本,也无法安装或升级到最新的软件。因此,在安装Linux系统之后,更新APT数据库是一个非常重要的步骤

如果切换到root用户, 命令前就不需要加 sudo

切换root用户

        sudo su

安装软件包

sudo apt install package_name

移除软件包

sudo apt remove package_name 

值得注意的是 remove命令会卸载掉特定的软件包,但可能会留下配置文件,如果要把配置文件也彻底删除 ,就是用 purge 命令替代 remove

1.2 JDK

1.2.1. 更新

安装之前都要执行一遍更新软件包命令  sudo apt-get update

1.2.2. 安装openjdk()

注意: 此处安装的是OpenJDK, OpenJDK是一个开源版本的 JDK, 和 Oracle 官方的 JDK 略有差别. 此处我们就使用 OpenJDK 即可. 安装 Oracle JDK 比较麻烦.

1.#查找jdk包

2.apt list |grep "jdk"

3.

4.#安装jdk17

5. apt install openjdk-17-jdk

安装过程输入 y 确认

当跳出这个画面就按回车就好,然后等待安装;

1.2.3.检查安装jdk成功

 1. java -version  #查看jdk版本

当输出jdk的版本,就说明你安装jdk成功了

如果提示 "java 命令找不到" 则说明安装失败

1.3 MySQL

1.3.1 使用apt安装MySQL

1. #查找安装包
2. apt list |grep "mysql-server"
3. #安装mysql
4. sudo apt install mysql-server

安装流程与安装jdk一致

1.3.2 查看MySQL状态

1. sudo systemctl status mysql

        执行结果

1.3.3 设置密码
        1.3.3.1 连接mysql服务器

1. sudo mysql

        1.3.3.2 使用 alter user 命令修改密码(自己能够记住就行)

1  ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

        执行结果(证明修改密码成功)

2.部署web项目到Linux

2.1 环境配置

程序正常运行, 需要保证环境和程序都要正确, 我们需要先设置环境

2.1.1 数据准备

在服务器上的mysql数据上建立与项目一致的数据库,数据可以不用同步,只要库表结构一样就好了。

2.1.2 程序配置文件修改

实际工作中,开发环境,测试环境和线上环境的配置是不一样的

比如mysql的用户名和密码;

所以我们要针对不同的环境,设置不同的配置

2.1.3 多平台文件配置

方法有很多种,这里我只举例我使用的这一种

针对不同的平台创建不同的配置文件,要求名字为

  • application.properties,
  • application-dev.properties,
  • application-test.properties; 

dev指的是开发环境的配置,test指的是线上环境的配置,固定格式,只有后面的字母可以修改,在不同的配置文件写不同的内容(下面只是将数据库的配置作为展示,如果自己还有其他配置,像:日志的存储路径,图片的存取路径都是要按这种方式修改的。)

application-dev.properties(开发环境的数据库的配置)

application-test.properties(线上环境的数据库的配置)

在主配置文件 application.properties 中指定配置文件为线上开发环境的配置

2.2 构建项目并打包

在本地使用maven进行打包

1. 如果Test代码中有与环境配置相关的操作(比如数据库相关的操作), 打包会失败, 点击下图①处的图标, 可以跳过测试。

2. 点击clean->package

2.3 上传Jar包到服务器, 并运行

1. 上传Jar包
直接拖动打好的jar包到xshell窗口即可完成文件的上传

问题: 如果执行上述命令之后, 提示 Command 'XX' not found , 表示当前云服务器未安装lrzsz命令, 需要先进行安装

2. 安装lrzsz

1.  apt-get install lrzsz

3.运行程序

1.  nohup java -jar blog-spring-0.0.1-SNAPSHOT.jar &

nohup : 后台运行程序. 用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行.

4.开放端口

如果外网需要访问该服务, 需要先服务器防火墙开放对应的端口号,本着服务器安全的原则,云服务器上的端口非必要不开启.

比如常见端口号: 数据库 3306 , Redis 6379, 尽可能避免开放, 而是采用其他方式来连接, 比如配置隧道的方式。

以阿里云服务器为例子

进入实例的安全组界面,点击安全组的管理规则

端口号写需要开放的端口号, 多个端口号以逗号分割. 

3.常见问题

1.检查程序是否启动

ps -ef |grep "java"

2.杀掉进程

1.查看目前的所有进程

1.ps -ef |grep "java" (只查看名字包含java的程序)

执行结果中的29916,31709就是进程执行的端口号

2.杀死进程

1. kill -9  端口号(29916)(强制杀死进程)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/20285.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DeepSeek在linux下的安装部署与应用测试

结合上一篇文章,本篇文章主要讲述在Redhat linux环境下如何部署和使用DeepSeek大模型,主要包括ollama的安装配置、大模型的加载和应用测试。关于Open WebUI在docker的安装部署,Open WebUI官网也提供了完整的docker部署说明,大家可…

罗德与施瓦茨ZNB20,矢量网络分析仪9KHz-20GHz

罗德与施瓦茨ZNB20矢量网络分析仪9KHz-20GHz R&SZNB20矢量网络分析仪 产品型号: ZNB20 产品品牌:罗德与施瓦茨 R&S 产品名称: 矢量网络分析仪 频率范围:9kHz - 20GHz R&S ZNB 矢量网络分析仪 良好的测量速度、动态范围和操作方便性&am…

axios post请求 接收sse[eventsource]数据的

axios 接收sse数据的 axios 接收sse数据的 EventSource什么 基于 HTTP 协议实现,通过与服务器建立一个持续连接,实现了服务器向客户端推送事件数据的功能。在客户端,EventSource 对象通过一个 URL 发起与服务器的连接。连接成功后&#xff0…

Python----数据结构(双向链表:节点,是否为空,长度,遍历,添加,删除,查找,循环链表)

一、双向链表 1.1、概念 双向链表是一种链表数据结构,每个节点除了包含指向下一个节点的指针外,还包含指向前一个节点的指针。这种特性使得在双向链表中,可以从任意一个节点开始,向前或向后遍历链表。 1.2、特点 • 既可以从…

VScode内接入deepseek包过程(本地部署版包会)

目录 1. 首先得有vscode软件 2. 在我们的电脑本地已经部署了ollama,我将以qwen作为实验例子 3. 在vscode上的扩展商店下载continue 4. 下载完成后,依次点击添加模型 5. 在这里可以添加,各种各样的模型,选择我们的ollama 6. 选…

投资组合风险管理

投资组合风险管理 市场风险 信用风险流动性风险风险指标收益率波动率最大回撤 α \alpha α(詹森指数), β \beta β卡玛比率月胜率上/下行捕获比夏普比率索提诺比率经风险调整的收益率(𝑀2)特雷诺比率信息…

Mongodb数据管理

Mongodb数据管理 1.登录数据库,查看默认的库 [rootdb51~]# mongo> show databases; admin 0.000GB config 0.000GB local 0.000GB> use admin switched to db admin > show tables system.version > admin库:admin 是 MongoDB 的管理…

GTP3 大模型

GTP3 大模型 模型架构训练核心思想 GTP3 : OpenAI 在 2020 年 5 月发布 GPT-3,发表 Language Models are Few-Shot Learner理念:Few-Shot 思想 , 用少量样本微调,让模型更准确 参数 : 最大模型 : 1750 亿参数多头 Transformer : 96 层Head…

神经网络实验——MLP

目录 1 目的 2 方法 3 源代码 4 结果 1 目的 ①熟悉 Python 的输入输出流; ②学会使用 matplotlib进行图像可视化; ③掌握神经网络的基本原理,学会使用 sklearn 库中的 MLPClassifier 函数构建基础的多层感知机神经网络分类器; ④学会使用网格查找进行超参数优…

Cursor 无限续杯

最近DeepSeek官网无法访问,导致DeepSeekCLine绑定的API Key也无法使用了。那么,除了DeepSeek,还有没有其他好用的AI编程工具呢?答案当然是Cursor!不过,由于各种原因一直没有用上Cursor,也不知道…

Windows本地部署DeepSeek

文章目录 一、准备工作1、准备服务器2、准备APP 二、部署deepseek-r11、脚本部署2、脚本部署 三、ChatBox集成 一、准备工作 1、准备服务器 本案例使用Windows电脑 2、准备APP Download Ollama Download Chatbox 二、部署deepseek-r1 1、脚本部署 双击安装完Ollama,默认…

QML 自定义矩形框Rectangle,实现四个边框自定义大小

一、自定义矩形 效果图 边框大小为:左2 上2 右5 下10 简单来说,就是定义两个矩形,一个在外边一个在内部; 再通过设置他们的边距,即可设置相应的边框宽度; 1.编码 新建空的qml文件 MyRectangle.qml im…

筛选相同项

# import os # import pandas as pd# # 文件路径,根据实际情况修改 # file_path_1 rC:\Users\Administrator\Desktop\python\文件1.xlsx # file_path_2 rC:\Users\Administrator\Desktop\python\文件2.xlsximport os import pandas as pd# 获取当前脚本所在的目录…

MVTEC数据集笔记

前言 网上的博客只有从论文里摘出的介绍,没有数据集文件详细的样子,下载数据集之后,对数据集具体的构成做一个补充的笔记。 下载链接:https://ai-studio-online.bj.bcebos.com/v1/7d4a3cf558254bbaaf4778ea336cb14ed8bbb96a7f2a…

Bom详解和Dom详解

Javascript的数据类型 1.BOM(浏览器对象模型)1.1window对象(1)全局作用域:(2)窗口属性:(3)弹窗和对话框:(4)定时器:(5)导航和历史:(6)打开和关闭窗口: 1.2navigator对象(1)浏览器信息属性:(2)浏…

Android 虚拟机与ClassLoader类加载笔记

1 Android虚拟机 在介绍Android的虚拟机之前,我们先来看一下JVM虚拟机之下,我们的class文件的字节码指令的Demo: public class Demo {public static void test() {int a 1;int b 2;int c a b;} } 将Demo.class文件使用命令&#xff1a…

STM32 HAL库USART串口DMA IDLE中断编程:避坑指南

HAL_UART_Receive接收最容易丢数据了,STM32 HAL库UART查询方式实例 可以考虑用中断来实现,但是HAL_UART_Receive_IT还不能直接用,容易数据丢失,实际工作中不会这样用,STM32 HAL库USART串口中断编程:演示数据丢失, 需要在此基础优化一下. STM32F103 HAL库USART串口…

NBT群落物种级丰度鉴定新方法sylph

文章目录 简介为什么选择Sylph?Sylph的工作原理 Install使用解析成gtdb格式sylph 能做什么?sylph 不能做什么?ANI定义如何使用 sylph-utils 生成包含分类信息的配置文件耗时:66个样本耗时1h 转成easymicroplot可用数据 简介 Sylp…

VLM 系列——Qwen2.5 VL——论文解读——前瞻(源码解读)

引言 20250212苹果突然被爆将与阿里巴巴合作为中国 iPhone 用户开发人工智能功能。苹果从 2023 年就已经开始测试各类中国头部 AI 大厂开发的 AI 模型。去年,原本选定百度作为主要合作伙伴,但双方的合作并不顺利,百度为“Apple Intelligence”…

DeepSeek R1原理

文章目录 DeepSeek R1原理强化学习介绍Policy ModelCritic ModelReward Model三者关系智能体包含的内容环境包含的内容 知识蒸馏简介数据蒸馏Logits 蒸馏特征蒸馏 训练流程DeepSeek-R1-Zero 训练策略与价值设计奖励方式训练模板**实验观察到模型自我进化**缺点 DeepSeek-R1 训练…