项目发布部署

目录

1.创建xshell项目

2.搭建Java部署环境

[2.1 apt](#2.1 apt)

[2.2 JDK](#2.2 JDK)

[2.3 MySQL](#2.3 MySQL)

3.部署web项目到Linux


1.创建xshell项目

2.搭建Java部署环境

2.1 apt

apt(Advanced PackagingTool),Linux软件包管理工具.用于在Ubuntu、Debian和相关Linux发行版

上安装、更新、删除和管理deb软件包.

大多数apt命令必须以具有sudo权限的用户身份运行.


apt常用命令

列出所有软件包

复制代码
apt list

这个命令输出所有包的列表,内容比较多,可以使用grep命令过滤输出。

复制代码
sudo apt-get update 
  1. 更新软件包数据库
复制代码

sudo apt-get update

apt实际上在可⽤软件包的数据库上⼯作.如果数据库没有更新,系统将不知道是否有更新的软件包可 ⽤.这就是为什么在安装任何Linux系统之后,第⼀件事应该是更新apt数据库

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

切换root用户

复制代码

sudo su

  1. 安装软件包

    复制代码
    sudo apt install package_name
  2. 移除软件包

    复制代码
    sudo apt remove package_name

2.2 JDK

  1. 更新软件包

    复制代码
    sudo apt-get update
  2. 安装openjdk

    复制代码
    #查找jdk包 
    apt list |grep "jdk" 
    #安装jdk 
    sudo apt install openjdk-17-jdk

    使用java -version 验证是否安装成功.

2.3 MySQL

  1. 使用apt安装MySQL

    复制代码
    #查找安装包 
    apt list |grep "mysql-server" 
    #安装mysql 
    sudo apt install mysql-server
  2. 查看MySQL状态

    (看到绿点表示成功)

    复制代码
    sudo systemctl status mysql
  3. MySQL安装安全设置

    默认的MySQL设置是不安全的,MySQL安装提供了一个安全脚本,用于解决不太安全的默认选项。

    复制代码
    sudo mysql_secure_installation 

    接下来按照提示输入:

    复制代码
    sudo mysql_secure_installation #安装安全设置  
    
    Press y|Y for Yes, any other key for No: Y #是否设置验证密码组件 
    
    Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2 #设置密码强度  
    
    Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y #默认情 况下,MySQL安装有⼀个匿名用户, 允许任何人登录MySQL. 是否删除匿名用户?
    
    Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y #仅 应允许root从'localhost'连接  
    
    Remove test database and access to it? (Press y|Y for Yes, any other key for  No) : Y #默认情况下, MySQL带有⼀个test数据库, 是否删除? 
    
    Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y #是 否现在加载配置, 使刚才的修改⽣效?   
  4. 设置密码

    连接MySQL服务器

    复制代码
    sudo mysql

    root 用户登录 MySQL 时,因未提供密码而被拒绝"。需要使用带密码的登录命令 (mysql -uroot -p),并输入正确的 root 用户密码

    使用alteruser命令修改密码

    复制代码
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY  '要修改的密码'; 

3.部署web项目到Linux

  1. 创建要保存的目录

    复制代码
    //查询目录
    ll
    
    //创建一个名为 forum 的新目录(文件夹)
    mkdir forum
    
    //进入名为 forum 的目录
    cd forum
    
    //显示当前工作目录的完整路径(绝对路径)
    pwd
  2. 连接数据库

    复制代码
    mysql -uroot -p 
  3. 执行SQL脚本

    将数据库拖入之前创建的目录下

    复制代码
    //删除文件夹
    rm 404Lounge.sql.0
    
    //执行当前文件中的sql语句
    source /root/404Lounge/404Lounge.sql
  4. 修改代码中数据源位置

  5. 修改配置文件中的日志级别与日志文件路径

    在当前所在的目录路径下创建日志文件路径

    复制代码
    root@VM-20-5-ubuntu:~/404Lounge# mkdir /log
    root@VM-20-5-ubuntu:~/404Lounge# cd /log
    root@VM-20-5-ubuntu:/log# mkdir 404Lounge
    root@VM-20-5-ubuntu:/log# cd 404Lounge/
    
    root@VM-20-5-ubuntu:/log/404Lounge# pwd
    /log/404Lounge  //该路径即为配置文件中所要配置的日志路径
    复制代码
    root@VM-20-5-ubuntu:/log/404Lounge# cd ~
    root@VM-20-5-ubuntu:~# cd 404Lounge/
  6. 打包程序

  7. 上传到服务器

    将package打包的.jar文件拖到xshell中

    复制代码
    //将名称改为forum.jar
    mv forum-0.0.1-SNAPSHOT.jar 404Lounge.jar

  8. 后台运行挂起

    复制代码
    nohup java-jar 404Lounge.jar &
  • nohup

    • 全称 "no hang up"(不挂起),作用是让命令在退出终端(或断开 SSH 连接)后,依然能在后台继续运行。如果直接运行 java -jar forum.jar,一旦关闭终端,程序就会停止,而 nohup 可以避免这种情况。
  • java -jar forum.jar

    • java:调用 Java 运行时环境。

    • -jar:表示要运行的是一个可执行的 JAR 包(Java Archive,Java 归档文件,将 Java 应用的类、资源等打包成的一个文件,可直接运行)。

    • forum.jar:要运行的 JAR 包文件名,这里假设你的 Java 项目打包后叫 forum.jar,实际需替换为你自己的 JAR 包名称。

  • &

    • 放在命令末尾,作用是让命令在后台运行。这样终端不会被程序的输出占用,你可以在同一终端继续执行其他命令。
复制代码
//先列出系统中所有进程的详细信息,再从中筛选出包含 java 的进程
ps -ef | grep java

第一部分:ps -ef

  • ps:是 Process Status 的缩写,用于 "查看系统中正在运行的进程"。

  • -e:显示所有用户的所有进程(不局限于当前用户)。

  • -f:以 全格式(full format) 显示进程信息,包括 UID(用户 ID)、PID(进程 ID)、PPID(父进程 ID)、C(CPU 使用率)、STIME(启动时间)、TTY(终端)、TIME(占用 CPU 时间)、CMD(进程命令)等详细内容。

  1. 第二部分:grep java
  • grep:是 Global Regular Expression Print 的缩写,用于 "在文本中搜索匹配正则表达式的内容"。

  • java:是要搜索的关键词,这里表示 "筛选出包含 java 字样的进程"(因为 Java 程序通常以 java -jar...java... 命令启动)。

  1. 管道 | 的作用
  • 管道 | 将前一个命令(ps -ef)的输出,作为后一个命令(grep java)的输入。

  • 因此,整个命令的作用是:先列出系统中所有进程的详细信息,再从中筛选出包含 java 的进程

复制代码
//查询端口 58080 网络连接状态
netstat -an|grep 58080
相关推荐
纳切威5 小时前
CentOS 10服务器版 部署Zabbix7.2 server端
linux·运维·centos·zabbix
祐言QAQ5 小时前
(超详细,于25年更新版) VMware 虚拟机安装以及Linux系统—CentOS 7 部署教程
linux·运维·服务器·c语言·物联网·计算机网络·centos
心灵宝贝5 小时前
如何在CentOS 7上安装bzip2-1.0.6-13.el7.x86_64.rpm RPM包(详细步骤)
linux·服务器·centos
数据知道5 小时前
Go基础:Go语言能用到的常用时间处理
开发语言·后端·golang·go语言
xuhe25 小时前
Overleaf项目文件同步工具: olsync
linux·go·overleaf·sync
华纳云IDC服务商5 小时前
服务器机械硬盘能支撑高并发流媒体吗?
运维·服务器·媒体
程序猿费益洲5 小时前
Docker 网络详解:(一)Linux 网络虚拟化技术
linux·网络·docker·容器·云计算
神都少年5 小时前
Linux Ubuntu Docker 常用命令
linux·ubuntu·docker
IT北辰6 小时前
Linux 系统python环境( Miniconda),最新版
linux·运维·python