项目发布部署

目录

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
相关推荐
Fleshy数模20 分钟前
CentOS7 安装配置 MySQL5.7 完整教程(本地虚拟机学习版)
linux·mysql·centos
a413244724 分钟前
ubuntu 25 安装vllm
linux·服务器·ubuntu·vllm
Configure-Handler31 分钟前
buildroot System configuration
java·服务器·数据库
津津有味道1 小时前
易语言TCP服务端接收刷卡数据并向客户端读卡器发送指令
服务器·网络协议·tcp·易语言
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.2 小时前
Keepalived VIP迁移邮件告警配置指南
运维·服务器·笔记
Genie cloud2 小时前
1Panel SSL证书申请完整教程
服务器·网络协议·云计算·ssl
一点程序2 小时前
基于SpringBoot的选课调查系统
java·spring boot·后端·选课调查系统
一只自律的鸡2 小时前
【Linux驱动】bug处理 ens33找不到IP
linux·运维·bug
17(无规则自律)2 小时前
【CSAPP 读书笔记】第二章:信息的表示和处理
linux·嵌入式硬件·考研·高考
!chen2 小时前
linux服务器静默安装Oracle26ai
linux·运维·服务器