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

目录

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

[1. 搭建Java部署环境](#1. 搭建Java部署环境)

[1.1 apt](#1.1 apt)

apt常用命令

列出所有的软件包

更新软件包数据库

安装软件包

移除软件包

[1.2 JDK](#1.2 JDK)

[1.2.1. 更新](#1.2.1. 更新)

[1.2.2. 安装openjdk()](#1.2.2. 安装openjdk())

1.2.3.检查安装jdk成功

[1.3 MySQL](#1.3 MySQL)

[1.3.1 使用apt安装MySQL](#1.3.1 使用apt安装MySQL)

[1.3.2 查看MySQL状态](#1.3.2 查看MySQL状态)

[1.3.3 设置密码](#1.3.3 设置密码)

[1.3.3.1 连接mysql服务器](#1.3.3.1 连接mysql服务器)

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

2.部署web项目到Linux

[2.1 环境配置](#2.1 环境配置)

[2.1.1 数据准备](#2.1.1 数据准备)

[2.1.2 程序配置文件修改](#2.1.2 程序配置文件修改)

[2.1.3 多平台文件配置](#2.1.3 多平台文件配置)

[2.2 构建项目并打包](#2.2 构建项目并打包)

在本地使用maven进行打包

[2.3 上传Jar包到服务器, 并运行](#2.3 上传Jar包到服务器, 并运行)

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

[2. 安装lrzsz](#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"

4.#安装jdk17

  1. 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.创建相关数据库表
连接mysql数据库

mysql -uroot -p 回车 然后在命令行输入密码就可以了

看到一下界面就说明你连接数据库成功了

连接数据库成功之后,就可以去创建数据库,表等内容,这里不在过多赘述;

如果你有完整的sql文件,执行SQL文件: 使用以下命令执行SQL文件:

source /path/to/yourfile.sql

例如,如果你的SQL文件位于*/root* 目录下,文件名为test.sql ,则命令如下: source /root/test.sql;

如果在当前工作路径下,就直接source 文件名 就可以了。

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)(强制杀死进程)
相关推荐
二十七剑20 分钟前
jvm调试和查看工具
java·linux·jvm
菜菜小蒙29 分钟前
【Linux】基于UDP/TCP服务器与客户端的实现
linux·服务器·udp
a小胡哦1 小时前
Windows、Mac、Linux,到底该怎么选?
linux·windows·macos·操作系统
_extraordinary_1 小时前
Linux权限(一)
android·linux·excel
易安杰1 小时前
ElasticSearch+Kibana通过Docker部署到Linux服务器中
linux·elasticsearch·搜索引擎·全文检索·中文分词
web2u1 小时前
Docker入门及基本概念
java·运维·服务器·spring·docker·容器
人生!?2 小时前
给小米/红米手机root(工具基本为官方工具)——KernelSU篇
android·linux·智能手机
元气满满的热码式2 小时前
Docker实战-使用docker compose搭建博客
运维·docker·容器
Anna_Tong2 小时前
阿里云如何协助解决操作系统兼容性问题
linux·服务器·ubuntu·阿里云·centos·云计算·系统迁移
HaoHao_0102 小时前
如何将MySQL数据库迁移至阿里云
服务器·数据库·阿里云·云计算·云服务器·迁移