【Linux】将IDEA项目部署到云服务器上,让其成为后台进程(保姆级教学,满满的干货~~)

目录

  • 部署项目到云服务器
    • 什么是部署
    • [一、 创建MySQL数据库](#一、 创建MySQL数据库)
    • [二、 修改idea配置项](#二、 修改idea配置项)
    • [三、 数据打包](#三、 数据打包)
    • [四、 部署云服务器](#四、 部署云服务器)
    • 五、开放端口号
    • [六 、 验证程序](#六 、 验证程序)

部署项目到云服务器

什么是部署

⼯作中涉及到的"环境"

  • 开发环境:开发⼈员写代码⽤的机器.
  • 测试环境:测试⼈员测试程序使⽤的机器
  • ⽣产环境(线上环境):最终项⽬发布时所使⽤的机器.对稳定性要求很⾼.

把程序安装到⽣产环境上,这个过程称为"部署".也叫"上线".

⼀旦程序部署成功,那么这个程序就能被外⽹中千千万万的普通用户访问到.

换句话说,如果程序有BUG,这个BUG也就被千千万万的用户看到了.

部署过程⾄关重要,属于程序开发中最重要的⼀环.⼀旦部署出现问题,极有可能导致严重的事故(服务器

不可⽤之类的).

并且部署程序后,即使我们关闭电脑,程序依然在远程服务器上运行,用户不分时间段的依旧可以访问

部署云服务器一共有四大步骤:

  1. 构建数据库
  2. 修改idea配置项
  3. 数据打包
  4. 部署云服务器
  5. 开放端口号
  6. 验证程序

一、 创建MySQL数据库

按照之前的数据库建表脚本,在服务器上运⾏,建⽴相同的表结构.

.在云服务器上使用mysql进行操作,创建项目中涉及到的数据库和表结构

二、 修改idea配置项

数据库中云服务器上构建好后,就下来打开idea项目.

  1. 如果项目中涉及到本地的文件路径,那么他在云服务器上是无法访问到的,把文件上传然后把文件路径修改成要放在的那个服务器那个路径下(pwd操作)
  2. 然后修改yml配置中的MySQL连接,将数据库名进行修改,我标注的2和3地方要改成你配置的云服务器上的数据库名和密码,标注的地方1不动

三、 数据打包

在本地使⽤maven进⾏打包

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

四、 部署云服务器

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

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

安装lrzsz

java 复制代码
 apt-get install lrzsz
  1. 运行程序
java 复制代码
//运行刚才打包好的jar程序
java -jar blog-spring-0.0.1-SNAPSHOT.jar

运行成功则部署成永久程序,自动运行

java 复制代码
nohup java -jar blog-spring-0.0.1-SNAPSHOT.jar &

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

五、开放端口号

如果外⽹需要访问该服务,需要先服务器防⽕墙开放对应的端⼝号

以腾讯云服务器举例:

1)进⼊防⽕墙管理⻚⾯

2)添加规则

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

六 、 验证程序

访问项⽬:http://IP:Port/blog_login.html,将原来的http://127.0.0.1:8080/login.html,将IP地址换成公网IP

IP改为云服务器的IP,Port改为项⽬的端⼝号

相关推荐
疯狂吧小飞牛5 小时前
GPG基础指令
linux·服务器·网络
C++ 老炮儿的技术栈5 小时前
volatile使用场景
linux·服务器·c语言·开发语言·c++
hjxu20166 小时前
【OpenClaw 龙虾养成笔记一】在远程服务器,使用Docker安装OpenClaw
服务器·笔记·docker
todoitbo7 小时前
用虚拟局域网打通 Win/Mac/Linux 三端:跨设备协作的实用方案
linux·运维·macos
源远流长jerry7 小时前
RDMA 基本操作类型详解:从双端通信到单端直访
linux·网络·tcp/ip·ip
Sylvia-girl8 小时前
Linux下的基本指令1
linux·运维·服务器
wyt5314298 小时前
Redis的安装教程(Windows+Linux)【超详细】
linux·数据库·redis
17(无规则自律)8 小时前
【Linux驱动实战】:字符设备之ioctl与mutex全解析
linux·c语言·驱动开发·嵌入式硬件
斯班奇的好朋友阿法法9 小时前
在企业的离线内网环境的服务器部署openclaw和大模型
服务器·语言模型
天赐学c语言9 小时前
Linux - 应用层自定义协议与序列/反序列化
linux·服务器·网络·c++