当前位置: 首页 > news >正文

从0开始学习Java+AI知识点总结-28.Linux部署

一、Linux 基础:项目部署的 “地基”

在学部署前,先搞懂 “为什么 Java 项目选 Linux” 以及 Linux 的核心基础,避免后续操作 “知其然不知其所以然”。

1.1 为什么 Java 项目首选 Linux?

操作系统分为多个领域,其中服务器领域是 Java 项目的主要落地场景,对比来看:

操作系统类型

代表系统

特点(服务器场景)

服务器操作系统

Linux

安全、稳定、免费、开源,市场占有率超 70%

Unix

安全稳定,但付费,多用于高端企业

Windows Server

付费、兼容性差,市场占有率低

桌面操作系统

Windows

用户多,但稳定性不足,不适合服务器

MacOS

体验好,但硬件绑定,成本高

移动设备操作系统

Android

基于 Linux 内核,用于移动端

iOS

苹果闭源系统,仅用于苹果设备

Java 生态中的中间件(MySQL、Redis、MQ 等)几乎都优先支持 Linux,且 Linux 的稳定性和资源占用优势,使其成为企业级项目的首选。

1.2 Linux 版本:内核版 vs 发行版

Linux 分为 “内核版” 和 “发行版”,我们实际使用的是发行版

  • 内核版:由 Linus 团队维护,免费开源,负责控制硬件,是 Linux 的核心。
  • 发行版:基于内核扩展,添加图形界面、工具链等,由厂商维护,分免费 / 收费版。

常用 Linux 发行版对比:

发行版

特点

适用场景

CentOS

RedHat 社区版,免费、稳定

服务器部署(推荐)

Ubuntu

桌面体验好,社区活跃

开发测试、桌面使用

RedHat

商业版,付费支持,稳定性极强

大型企业生产环境

openSUSE

图形界面华丽,个人免费

桌面学习

Fedora

功能新、更新快,免费

技术尝鲜

推荐选择 CentOS 7:免费、稳定,与企业生产环境一致,资料丰富。

1.3 Linux 安装:虚拟机搭建学习环境

企业中用物理机安装,但学习阶段用虚拟机安装即可,步骤如下:

1.3.1 虚拟机软件选择

常用虚拟机软件:VMware(功能强,推荐)、VirtualBox(免费轻量),这里以 VMware 为例。

1.3.2 安装 VMware
  1. 下载 VMware 安装包(如 VMware Workstation 16);
  2. 双击安装,一路 “下一步”,选择安装目录(避免中文路径);
  3. 安装完成后,输入注册码激活(网上可找到合规的试用码)。

避坑:若之前安装过 VMware,不要随意卸载!卸载需清理注册表,否则重新安装会报错。

1.3.3 挂载 CentOS 镜像
  1. 下载 CentOS 7 镜像(.iso 文件),解压到无中文路径的目录;
  2. 打开 VMware,点击 “打开虚拟机”,选择解压目录中的.vmx文件;
  3. 配置虚拟网络:
    • 点击 “编辑”→“虚拟网络编辑器”,选择 “NAT 模式”;
    • 设置子网 IP 为192.168.200.0,子网掩码255.255.255.0,点击 “应用”;
  1. 启动虚拟机:选择 “我已移动该虚拟机”(避免网络配置冲突);
  2. 登录:用户名root,密码1234(Linux 输入密码不显示,输完回车即可)。
1.3.4 网络连通性测试
  1. Windows 端打开 CMD,执行ipconfig,查看 VMware Network Adapter VMnet8 的 IPv4(默认192.168.200.1);
  2. Linux 端执行ip addr,确认 IP 为192.168.200.128(固定 IP,文档中配置好的);
  3. Windows 端 ping Linux:ping 192.168.200.128 -t,若显示 “来自... 的回复”,说明网络通。

避坑:若 ping 不通,删除 VMware 的 VMnet1 和 VMnet8 网卡,重新添加并配置子网 IP 即可。

1.4 远程连接:用 FinalShell 操作 Linux

企业中不会直接操作服务器,而是用SSH 工具远程连接,推荐 FinalShell(免费、功能强、界面友好)。

1.4.1 安装 FinalShell
  1. 下载 FinalShell 安装包(.exe 文件);
  2. 双击安装,选择安装目录,一路 “下一步”。
1.4.2 连接 Linux
  1. 打开 FinalShell,点击 “新建连接”→“SSH 连接”;
  2. 配置连接信息:
    • 主机:192.168.200.128(Linux 的 IP);
    • 端口:22(SSH 默认端口);
    • 用户名:root,密码:1234
  1. 点击 “确定”,双击连接即可登录。

避坑:若连接超时,检查 Linux 防火墙是否关闭,或重新配置 VMware 虚拟网络。

1.5 Linux 目录结构:和 Windows 的核心区别

Linux 目录是 “倒挂的树”,所有目录从/(根目录)开始,无盘符(C 盘、D 盘),核心目录作用如下:

目录

作用

常用场景

/bin

存放二进制可执行文件(如 ls、cd)

日常命令调用

/boot

系统引导文件(如内核、启动菜单)

系统启动相关

/dev

存放设备文件(如硬盘、鼠标)

硬件操作

/etc

系统配置文件(如环境变量、服务配置)

修改配置(如 profile)

/home

普通用户的主目录

普通用户文件存储

/lib

程序运行依赖的共享库

软件安装依赖

/opt

可选软件安装目录

自定义软件安装

/root

超级用户(root)的主目录

root 用户文件存储

/sbin

管理员专用命令(如防火墙操作)

系统管理

/tmp

临时文件目录(重启后清空)

存放临时数据

/usr

系统应用程序目录(如 JDK、MySQL)

核心软件安装(推荐)

/var

动态数据目录(如日志、缓存)

查看项目日志(/var/log)

对比 Windows:Windows 按 “盘符” 划分(C:\、D:\),Linux 按 “目录功能” 划分,所有文件都在/下。

二、Linux 常用命令:部署的 “基本功”

Linux 操作全靠命令,以下是 Java 部署高频用到的命令,每个都附 “语法 + 选项 + 示例”。

2.1 命令基础:格式与技巧

  • 命令格式command [-options] [parameter]

例:ls -l /usr(ls 是命令,-l 是选项,/usr 是参数)

  • 实用技巧
    • Tab 键:自动补全命令 / 路径(避免输错);
    • 连续按 2 次 Tab:显示所有可选命令 / 路径;
    • 上下箭头:快速调出历史命令;
    • clearCtrl+L:清屏。

2.2 目录操作命令

2.2.1 ls:查看目录内容
  • 语法:ls [-al] [目录路径]
  • 选项:
    • -a:显示所有文件(包括隐藏文件,以.开头);
    • -l:显示详细信息(文件类型、权限、大小、修改时间等);
  • 示例:

ls                # 查看当前目录内容

ls -a             # 查看当前目录所有文件(含隐藏)

ls -l /usr        # 查看/usr目录的详细信息

ll                # 简写,等同于ls -l

2.2.2 cd:切换目录
  • 语法:cd [目录路径]
  • 特殊符号:
    • ~:切换到当前用户主目录(root 用户是/root);
    • .:当前目录;
    • ..:上级目录;
  • 示例:

cd /usr/local      # 切换到/usr/local目录

cd ..              # 切换到上级目录

cd ~               # 切换到root主目录

cd -               # 切换到上一次所在目录

2.2.3 mkdir:创建目录
  • 语法:mkdir [-p] 目录名
  • 选项:-p:创建多级目录(父目录不存在则自动创建);
  • 示例:

mkdir app          # 在当前目录创建app目录

mkdir -p app/java  # 创建app/java多级目录(app不存在则创建)

2.2.4 rm:删除文件 / 目录
  • 语法:rm [-rf] 文件名/目录名
  • 选项:
    • -r:递归删除(删除目录时必须用);
    • -f:强制删除(无需确认);
  • 示例:

rm 1.txt           # 删除1.txt文件(需确认)

rm -f 1.txt        # 强制删除1.txt(无需确认)

rm -r app          # 删除app目录及内容(需确认)

rm -rf app         # 强制删除app目录及内容(谨慎使用!)

避坑:rm -rf /是 “删库跑路” 命令,绝对不能执行!删除前务必确认路径。

2.3 文件操作命令

2.3.1 cat:查看文件内容(小文件)
  • 语法:cat [-n] 文件名
  • 选项:-n:显示行号;
  • 示例:

cat /etc/profile   # 查看环境变量配置文件

cat -n 1.txt       # 查看1.txt并显示行号

2.3.2 more:分页查看文件(大文件)
  • 语法:more 文件名
  • 操作:
    • 回车键:向下滚 1 行;
    • 空格键:向下滚 1 屏;
    • b:向上滚 1 屏;
    • qCtrl+C:退出;
  • 示例:

more /etc/profile   # 分页查看profile文件

2.3.3 head:查看文件开头内容
  • 语法:head [-n] 文件名
  • 选项:-n:显示前 n 行(默认 10 行);
  • 示例:

head 1.log         # 查看1.log前10行

head -20 1.log     # 查看1.log前20行

2.3.4 tail:查看文件末尾内容(高频)
  • 语法:tail [-nf] 文件名
  • 选项:
    • -n:显示后 n 行(默认 10 行);
    • -f:动态查看末尾内容(实时刷新,常用于看日志);
  • 示例:

tail 1.log         # 查看1.log后10行

tail -5 1.log      # 查看1.log后5行

tail -f tlias.log  # 动态查看项目日志(Ctrl+C退出)

2.4 拷贝与移动命令

2.4.1 cp:复制文件 / 目录
  • 语法:cp [-r] 源路径 目标路径
  • 选项:-r:复制目录(必须用);
  • 示例:

cp 1.txt /usr      # 把1.txt复制到/usr目录

cp 1.txt ./2.txt   # 把1.txt复制到当前目录,改名为2.txt

cp -r app /usr     # 把app目录及内容复制到/usr目录

2.4.2 mv:移动 / 改名文件 / 目录
  • 语法:mv 源路径 目标路径
  • 逻辑:若目标路径是已存在的目录,则移动;否则,改名;
  • 示例:

mv 1.txt /usr      # 把1.txt移动到/usr目录

mv 1.txt 2.txt     # 把1.txt改名为2.txt

mv app /usr        # 把app目录移动到/usr目录(若/usr/app不存在)

2.5 打包压缩命令(tar)

Linux 中常用tar命令处理压缩包,支持打包 + 压缩,格式:

  • .tar:仅打包,不压缩;
  • .tar.gz:打包 + 压缩(常用)。
  • 语法:tar [-zcxvf] 压缩包名 源文件/目录
  • 选项:
    • -z:用 gzip 压缩 / 解压;
    • -c:创建压缩包(打包);
    • -x:解压压缩包;
    • -v:显示操作过程;
    • -f:指定压缩包名(必须放在最后);
示例:

# 打包当前目录所有文件为test.tar

tar -cvf test.tar ./*

# 打包并压缩当前目录所有文件为test.tar.gz

tar -zcvf test.tar.gz ./*

# 解压test.tar到当前目录

tar -xvf test.tar

# 解压test.tar.gz到/usr/local目录(-C指定目录)

tar -zxvf test.tar.gz -C /usr/local

2.6 文本编辑命令(vim)

Linux 中编辑配置文件(如环境变量、服务配置)需用vim,功能比vi更强(支持语法高亮)。

2.6.1 安装 vim

默认 CentOS 没有 vim,需手动安装:

yum install vim -y  # -y表示自动确认安装

2.6.2 vim 三种模式(核心)

vim 有三种模式,需熟练切换:

  1. 命令模式:打开文件后默认进入,用于查看、复制、删除内容;
  2. 插入模式:用于编辑内容,从命令模式按i/a/o进入;
  3. 底行模式:用于保存、退出、查找,从命令模式按:/进入。

模式切换流程

vim 文件名 → 命令模式 → 按i/a/o → 插入模式(编辑内容) → 按ESC → 命令模式 → 按: → 底行模式(保存/退出)

2.6.3 常用指令

模式

指令

作用

命令模式

gg

定位到第一行

G

定位到最后一行

dd

删除当前行

ndd

删除当前行及后 n 行(如 3dd 删除 3 行)

yy

复制当前行

p

粘贴到当前行下方

u

撤销上一步操作

i/a/o

进入插入模式(i 在光标前,a 在光标后)

底行模式

:wq

保存并退出

:q!

不保存强制退出

:set nu

显示行号

:set nonu

隐藏行号

:/关键词

查找关键词(n 下一个,N 上一个)

:n

定位到第 n 行(如:10 定位到第 10 行)

示例:编辑环境变量文件

vim /etc/profile   # 打开profile文件(命令模式)

G                  # 定位到最后一行(命令模式)

i                  # 进入插入模式,输入环境变量配置

ESC                # 回到命令模式

:wq                # 保存并退出(底行模式)

2.7 查找命令(find vs grep)

2.7.1 find:按文件名 / 属性查找文件
  • 语法:find 目录路径 -option 关键词
  • 示例:

find . -name "*.java"  # 在当前目录及子目录找.java文件

find /usr -name "app"  # 在/usr目录及子目录找app目录

2.7.2 grep:按内容查找文件
  • 语法:grep [-inAB] 关键词 文件名/目录
  • 选项:
    • -i:忽略大小写;
    • -n:显示行号;
    • -A5:显示关键词行及后 5 行;
    • -B5:显示关键词行及前 5 行;
  • 示例:

grep "Hello" 1.txt      # 在1.txt中找Hello(区分大小写)

grep -in "hello" *.java # 在所有.java文件找hello(忽略大小写,显示行号)

ll | grep "app"         # 结合管道符,查看当前目录含app的文件(管道符|传递结果)

核心区别find找 “文件本身”,grep找 “文件内容”。

三、Linux 软件安装:项目运行的 “依赖”

Java 项目部署需要三大基础软件:JDK(运行 Java 程序)、MySQL(数据库)、Nginx(部署前端 / 反向代理)。先了解 Linux 软件的 4 种安装方式:

3.1 软件安装方式对比

安装方式

特点

适用场景

二进制发布包

已编译打包,解压 + 配置即可用

JDK、Redis 等(简单高效)

RPM 安装

按 RedHat 规范打包,需手动解决依赖

小众软件(不推荐)

YUM 安装

在线安装,自动解决依赖(需联网)

系统工具(如 vim、gcc)

源码编译安装

需编译(make),可自定义配置

Nginx、Apache 等(灵活)

3.2 安装 JDK(二进制发布包)

Java 项目必须依赖 JDK,推荐 JDK 17(LTS 长期支持版)。

步骤:
  1. 上传安装包:用 FinalShell 把jdk-17.0.10_linux-x64_bin.tar.gz上传到/root目录;
  2. 解压到指定目录

tar -zxvf jdk-17.0.10_linux-x64_bin.tar.gz -C /usr/local

# -C指定解压目录为/usr/local

  1. 配置环境变量

vim /etc/profile  # 打开环境变量配置文件

# 在文件末尾添加:

export JAVA_HOME=/usr/local/jdk-17.0.10  # JDK解压路径

export PATH=$JAVA_HOME/bin:$PATH          # 追加JDK的bin目录到PATH

  1. 生效环境变量

source /etc/profile  # 重新加载profile文件

  1. 验证安装

java -version  # 显示JDK版本即成功(如java version "17.0.10")

避坑:JDK 路径必须和实际解压路径一致,否则会报错 “java: command not found”。

3.3 安装 MySQL 8.0(二进制发布包)

MySQL 是 Java 项目常用数据库,步骤稍多,需注意依赖和权限。

步骤:
  1. 准备工作:卸载自带的 mariadb

CentOS 默认带 mariadb(与 MySQL 冲突),需先卸载:

# 查看已安装的mariadb

rpm -qa | grep mariadb

# 卸载(替换为上一步查到的文件名)

rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

  1. 上传并解压安装包

# 上传mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz到/root

tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz  # 解压

# 移动到/usr/local并改名为mysql(方便操作)

mv mysql-8.0.30-linux-glibc2.12-x86_64 /usr/local/mysql

  1. 配置环境变量

vim /etc/profile

# 追加:

export MYSQL_HOME=/usr/local/mysql

export PATH=$MYSQL_HOME/bin:$PATH

# 生效

source /etc/profile

  1. 注册 MySQL 为系统服务

# 复制服务脚本到/etc/init.d

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

# 添加到系统服务

chkconfig --add mysql

  1. 初始化 MySQL

# 创建mysql用户组

groupadd mysql

# 创建mysql用户(归属于mysql组)

useradd -r -g mysql -s /bin/false mysql

# 初始化(生成临时密码,务必保存!)

mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

初始化日志中会显示临时密码,如:A temporary password is generated for root@localhost: xxxxx(xxxxx 是临时密码)。

  1. 启动 MySQL 服务

systemctl start mysql  # 启动服务

systemctl status mysql # 查看状态(active(running)即成功)

  1. 登录并修改密码

# 用临时密码登录

mysql -uroot -pxxxxx  # 替换xxxxx为临时密码

# 修改root密码为1234(简单易记,学习用;生产环境用复杂密码)

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234';

  1. 授权远程访问

默认 root 只能本地访问,需授权远程连接(如 Windows 用 Navicat 连接):

# 创建远程访问用户(%表示任意IP)

CREATE USER 'root'@'%' IDENTIFIED BY '1234';

# 授予所有权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

# 刷新权限

FLUSH PRIVILEGES;

  1. 配置防火墙

MySQL 默认端口 3306,需开放端口或关闭防火墙(学习用可关闭,生产环境开放端口):

# 方式1:开放3306端口(推荐)

firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --reload  # 生效

firewall-cmd --list-ports  # 查看开放的端口(含3306即成功)

# 方式2:关闭防火墙(学习用)

systemctl stop firewalld  # 暂时关闭

systemctl disable firewalld  # 永久关闭(开机不启动)

  1. 连接测试
    • Windows 端用 CMD 测试:mysql -h192.168.200.128 -P3306 -uroot -p1234
    • 或用 Navicat、DataGrip 等工具连接,输入 IP、端口、用户名、密码,测试连接成功即可。

3.4 安装 Nginx(源码编译)

Nginx 用于部署前端静态资源,或作为反向代理转发请求到后端,需源码编译安装(可自定义配置)。

步骤:
  1. 安装依赖

Nginx 依赖 pcre(正则)、zlib(压缩)、openssl(HTTPS),需先安装:

yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel

yum install -y gcc-c++  # C语言编译环境

  1. 上传并解压源码包

# 上传nginx-1.20.2.tar.gz到/root

tar -zxvf nginx-1.20.2.tar.gz  # 解压

cd nginx-1.20.2  # 进入解压目录

  1. 配置安装目录

指定 Nginx 安装到/usr/local/nginx

./configure --prefix=/usr/local/nginx

  1. 编译与安装

make  # 编译(生成可执行文件)

make install  # 安装(复制到/usr/local/nginx)

  1. 启动 Nginx

cd /usr/local/nginx  # 进入安装目录

sbin/nginx  # 启动服务

  1. 验证安装

Windows 端打开浏览器,输入 Linux 的 IP(192.168.200.128),显示 “Welcome to nginx!” 即成功。

  1. Nginx 常用操作

sbin/nginx          # 启动

sbin/nginx -s stop  # 停止

sbin/nginx -s reload # 重新加载配置(修改nginx.conf后用)

ps -ef | grep nginx # 查看Nginx进程

四、Java 项目部署:从开发到落地

Java 项目部署分为前端部署(基于 Nginx)和后端部署(Spring Boot 项目),以下是完整流程。

4.1 前端项目部署(Vue/React)

假设前端项目已打包为静态资源(HTML、CSS、JS、图片等),步骤如下:

  1. 清理 Nginx 默认资源

删除 Nginx html 目录下的默认文件(index.html、50x.html):

rm -rf /usr/local/nginx/html/*

  1. 上传前端静态资源

用 FinalShell 把前端打包后的资源(如 dist 目录下的所有文件)上传到/usr/local/nginx/html

  1. 配置 Nginx 反向代理

若前端需调用后端接口(如/api/xxx),需配置 Nginx 反向代理,避免跨域:

vim /usr/local/nginx/conf/nginx.conf  # 编辑配置文件

http块中添加如下server配置:

server {

    listen       80;  # 监听80端口(HTTP默认端口)

    server_name  localhost;  # 服务器名(可填IP)

    client_max_body_size 10m;  # 最大请求体大小

    # 前端静态资源配置

    location / {

        root   html;  # 静态资源目录(/usr/local/nginx/html)

        index  index.html index.htm;  # 默认首页

        try_files $uri $uri/ /index.html;  # 解决SPA路由问题

    }

    # 反向代理:/api开头的请求转发到后端8080端口

    location ^~ /api/ {

        rewrite ^/api/(.*)$ /$1 break;  # 去掉/api前缀

        proxy_pass http://localhost:8080;  # 后端服务地址

    }

}

  1. 重新加载 Nginx 配置

/usr/local/nginx/sbin/nginx -s reload

  1. 访问测试

浏览器输入192.168.200.128,能看到前端页面,且接口调用正常(无跨域报错)即成功。

避坑:若页面空白,按Ctrl+F5强制刷新(清除浏览器缓存);若接口 404,检查 Nginx 反向代理配置是否正确。

4.2 后端项目部署(Spring Boot)

Spring Boot 项目打包为 JAR 包,直接在 Linux 上用java -jar运行,步骤如下:

4.2.1 环境准备
  1. 修改项目配置

本地 IDEA 中修改application.yml,配置 Linux 上的 MySQL 地址(避免连本地数据库):

spring:

  datasource:

    driver-class-name: com.mysql.cj.jdbc.Driver

    url: jdbc:mysql://192.168.200.128:3306/tlias?useSSL=false&serverTimezone=UTC

    username: root

    password: 1234  # Linux上MySQL的密码

本地启动项目,测试接口正常(如访问http://localhost:8080/emp能返回数据)。

  1. 创建 MySQL 数据库

在 Linux 的 MySQL 中创建项目所需数据库(如tlias),并执行 SQL 脚本初始化表结构和数据:

# 登录MySQL

mysql -uroot -p1234

# 创建数据库

CREATE DATABASE IF NOT EXISTS tlias DEFAULT CHARSET utf8mb4;

# 使用数据库

USE tlias;

# 执行SQL脚本(可在DataGrip中连接Linux的MySQL,直接运行脚本)

4.2.2 打包项目
  1. 检查 pom.xml 配置

确保 pom.xml 中包含 Spring Boot 打包插件(否则无法打成可执行 JAR):

<build>

    <plugins>

        <plugin>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-maven-plugin</artifactId>

        </plugin>

    </plugins>

</build>

  1. 执行打包命令

在 IDEA 的 Maven 面板中,点击 “Lifecycle”→“package”,或执行命令:

mvn clean package -Dmaven.test.skip=true  # 跳过测试,快速打包

打包完成后,JAR 包在target目录下(如tlias-web-management-0.0.1-SNAPSHOT.jar)。

4.2.3 部署 JAR 包
  1. 上传 JAR 包

在 Linux 上创建/usr/local/app目录(用于存放项目 JAR 包),并上传 JAR 包:

mkdir -p /usr/local/app  # 创建目录

# 用FinalShell把JAR包上传到/usr/local/app

  1. 启动项目
    • 前台启动(测试用,窗口关闭服务停止):

cd /usr/local/app

java -jar tlias-web-management-0.0.1-SNAPSHOT.jar

    • 后台启动(生产用,不占用窗口,日志输出到文件):

# nohup:不挂起,后台运行;&>:日志输出到文件;&:后台运行

nohup java -jar tlias-web-management-0.0.1-SNAPSHOT.jar &> tlias.log &

  1. 验证启动

# 查看日志(确认无报错)

tail -f /usr/local/app/tlias.log

# 查看项目进程

ps -ef | grep tlias  # 能看到java进程即成功

  1. 访问测试
    • 浏览器访问http://192.168.200.128:8080/emp(后端接口),能返回数据;
    • 或通过前端页面操作(如查询员工列表),数据正常显示即部署成功。
4.2.4 停止项目

若需更新 JAR 包,需先停止服务:

# 1. 查找项目进程ID(PID)

ps -ef | grep tlias  # 输出如:root  1234  1  0 10:00 ?  00:00:00 java -jar ...

# 2. 杀死进程(替换1234为实际PID)

kill -9 1234

4.2.5 阿里云 OSS 配置(可选)

若项目用到阿里云 OSS 上传文件,需在 Linux 中配置 OSS 的 AccessKey 环境变量:

  1. Windows 端查看本地环境变量:

echo %OSS_ACCESS_KEY_ID%    # 如:LTAI5tFww3VE7EZSs9dfh7j5

echo %OSS_ACCESS_KEY_SECRET%# 如:3eVYBbuK1P8rX5Tv0ge81kKG1TrOLs

  1. Linux 端配置环境变量:

vim /etc/profile

# 追加:

export OSS_ACCESS_KEY_ID=LTAI5tFww3VE7EZSs9dfh7j5

export OSS_ACCESS_KEY_SECRET=3eVYBbuK1P8rX5Tv0ge81kKG1TrOLs

# 生效

source /etc/profile

# 关闭FinalShell重新打开,验证:

echo $OSS_ACCESS_KEY_ID  # 能显示即成功

五、实战避坑与总结

  1. 网络问题:ping 不通或连接超时,优先检查 VMware 虚拟网络配置(NAT 模式、子网 IP),或重新添加网卡。
  2. 权限问题:操作文件 / 目录时报 “Permission denied”,用chmod修改权限(如chmod 777 文件名),或切换 root 用户(su root)。
  3. 服务启动失败:查看日志(如 MySQL 日志/usr/local/mysql/data/localhost.err、项目日志tlias.log),根据报错排查(如端口被占用、配置错误)。
  4. 生产环境建议
    • 不关闭防火墙,只开放必要端口(如 80、443、3306、8080);
    • nohup后台运行项目,日志定期归档(避免占满磁盘);
    • systemd管理服务(实现开机自启)。

如果对你有帮助,欢迎点赞 + 收藏 + 关注

http://www.xdnf.cn/news/1389331.html

相关文章:

  • Java 8核心特性详解:从Lambda到Stream的革命性升级
  • lesson49:HTML基础标签全解析:从入门到精通的网页构建指南
  • SQL Server 查看备份计划
  • Cursor不能读取.env文件解决办法(**/.env、**/env.*)
  • 华为认证全解析:价值详解、含金量解读(2025最新版)
  • 安全月报 | 傲盾DDoS攻击防御2025年8月简报
  • CRYPT32!CryptMsgUpdate函数分析之CRYPT32!PkiAsn1Decode函数的作用是得到pci
  • 达梦数据库-归档日志(一)
  • JavaScript 入门教程
  • 《Linux 网络编程六:数据存储与SQLite应用指南》
  • TF-IDF:文本分析的“火眼金睛”
  • PCIe 6.0 TLP路由机制:解密高效数据传输的核心架构
  • 【微知】如何撤销一个git的commit?以及撤销的3种方式?
  • 在本地获取下载chrome,然后离线搬运到 ECS
  • 最小生成树——Kruskal
  • go 使用rabbitMQ
  • 【谷歌浏览器】浏览器实用自用版——谷歌浏览器(Google Chrome)离线纯净版安装 官方版无任何捆绑及广告 【离线安装谷歌浏览器】
  • 通过 KafkaMQ 接入Skywalking 数据最佳实践
  • R ggplot2学习Nature子刊一张图,换数据即可用!
  • leetcode 338 比特位计数
  • 04数据库约束实战:从入门到精通
  • Linux下的网络编程SQLITE3详解
  • 算法题打卡力扣第1004. 最大连续1的个数 III(mid)
  • 技术速递|新手指南:如何在 Foundry Local 中使用自定义模型
  • 百度后端岗位--面试真题分析
  • CCS的诡异报错合集1(以C2000为例)
  • MAC spotlight 搜不到应用程序和 tags 生效
  • ZooKeeper 安装配置
  • C++基础(②VS2022创建项目)
  • 球型摄像机实现360°无死角