从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
- 下载 VMware 安装包(如 VMware Workstation 16);
- 双击安装,一路 “下一步”,选择安装目录(避免中文路径);
- 安装完成后,输入注册码激活(网上可找到合规的试用码)。
避坑:若之前安装过 VMware,不要随意卸载!卸载需清理注册表,否则重新安装会报错。
1.3.3 挂载 CentOS 镜像
- 下载 CentOS 7 镜像(.iso 文件),解压到无中文路径的目录;
- 打开 VMware,点击 “打开虚拟机”,选择解压目录中的.vmx文件;
- 配置虚拟网络:
- 点击 “编辑”→“虚拟网络编辑器”,选择 “NAT 模式”;
- 设置子网 IP 为192.168.200.0,子网掩码255.255.255.0,点击 “应用”;
- 启动虚拟机:选择 “我已移动该虚拟机”(避免网络配置冲突);
- 登录:用户名root,密码1234(Linux 输入密码不显示,输完回车即可)。
1.3.4 网络连通性测试
- Windows 端打开 CMD,执行ipconfig,查看 VMware Network Adapter VMnet8 的 IPv4(默认192.168.200.1);
- Linux 端执行ip addr,确认 IP 为192.168.200.128(固定 IP,文档中配置好的);
- Windows 端 ping Linux:ping 192.168.200.128 -t,若显示 “来自... 的回复”,说明网络通。
避坑:若 ping 不通,删除 VMware 的 VMnet1 和 VMnet8 网卡,重新添加并配置子网 IP 即可。
1.4 远程连接:用 FinalShell 操作 Linux
企业中不会直接操作服务器,而是用SSH 工具远程连接,推荐 FinalShell(免费、功能强、界面友好)。
1.4.1 安装 FinalShell
- 下载 FinalShell 安装包(.exe 文件);
- 双击安装,选择安装目录,一路 “下一步”。
1.4.2 连接 Linux
- 打开 FinalShell,点击 “新建连接”→“SSH 连接”;
- 配置连接信息:
- 主机:192.168.200.128(Linux 的 IP);
- 端口:22(SSH 默认端口);
- 用户名:root,密码:1234;
- 点击 “确定”,双击连接即可登录。
避坑:若连接超时,检查 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:显示所有可选命令 / 路径;
- 上下箭头:快速调出历史命令;
- clear或Ctrl+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 屏;
- q或Ctrl+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 有三种模式,需熟练切换:
- 命令模式:打开文件后默认进入,用于查看、复制、删除内容;
- 插入模式:用于编辑内容,从命令模式按i/a/o进入;
- 底行模式:用于保存、退出、查找,从命令模式按:或/进入。
模式切换流程:
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 长期支持版)。
步骤:
- 上传安装包:用 FinalShell 把jdk-17.0.10_linux-x64_bin.tar.gz上传到/root目录;
- 解压到指定目录:
tar -zxvf jdk-17.0.10_linux-x64_bin.tar.gz -C /usr/local # -C指定解压目录为/usr/local |
- 配置环境变量:
vim /etc/profile # 打开环境变量配置文件 # 在文件末尾添加: export JAVA_HOME=/usr/local/jdk-17.0.10 # JDK解压路径 export PATH=$JAVA_HOME/bin:$PATH # 追加JDK的bin目录到PATH |
- 生效环境变量:
source /etc/profile # 重新加载profile文件 |
- 验证安装:
java -version # 显示JDK版本即成功(如java version "17.0.10") |
避坑:JDK 路径必须和实际解压路径一致,否则会报错 “java: command not found”。
3.3 安装 MySQL 8.0(二进制发布包)
MySQL 是 Java 项目常用数据库,步骤稍多,需注意依赖和权限。
步骤:
- 准备工作:卸载自带的 mariadb
CentOS 默认带 mariadb(与 MySQL 冲突),需先卸载:
# 查看已安装的mariadb rpm -qa | grep mariadb # 卸载(替换为上一步查到的文件名) rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64 |
- 上传并解压安装包:
# 上传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 |
- 配置环境变量:
vim /etc/profile # 追加: export MYSQL_HOME=/usr/local/mysql export PATH=$MYSQL_HOME/bin:$PATH # 生效 source /etc/profile |
- 注册 MySQL 为系统服务:
# 复制服务脚本到/etc/init.d cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql # 添加到系统服务 chkconfig --add mysql |
- 初始化 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 是临时密码)。
- 启动 MySQL 服务:
systemctl start mysql # 启动服务 systemctl status mysql # 查看状态(active(running)即成功) |
- 登录并修改密码:
# 用临时密码登录 mysql -uroot -pxxxxx # 替换xxxxx为临时密码 # 修改root密码为1234(简单易记,学习用;生产环境用复杂密码) ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234'; |
- 授权远程访问:
默认 root 只能本地访问,需授权远程连接(如 Windows 用 Navicat 连接):
# 创建远程访问用户(%表示任意IP) CREATE USER 'root'@'%' IDENTIFIED BY '1234'; # 授予所有权限 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; # 刷新权限 FLUSH PRIVILEGES; |
- 配置防火墙:
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 # 永久关闭(开机不启动) |
- 连接测试:
- Windows 端用 CMD 测试:mysql -h192.168.200.128 -P3306 -uroot -p1234;
- 或用 Navicat、DataGrip 等工具连接,输入 IP、端口、用户名、密码,测试连接成功即可。
3.4 安装 Nginx(源码编译)
Nginx 用于部署前端静态资源,或作为反向代理转发请求到后端,需源码编译安装(可自定义配置)。
步骤:
- 安装依赖:
Nginx 依赖 pcre(正则)、zlib(压缩)、openssl(HTTPS),需先安装:
yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel yum install -y gcc-c++ # C语言编译环境 |
- 上传并解压源码包:
# 上传nginx-1.20.2.tar.gz到/root tar -zxvf nginx-1.20.2.tar.gz # 解压 cd nginx-1.20.2 # 进入解压目录 |
- 配置安装目录:
指定 Nginx 安装到/usr/local/nginx:
./configure --prefix=/usr/local/nginx |
- 编译与安装:
make # 编译(生成可执行文件) make install # 安装(复制到/usr/local/nginx) |
- 启动 Nginx:
cd /usr/local/nginx # 进入安装目录 sbin/nginx # 启动服务 |
- 验证安装:
Windows 端打开浏览器,输入 Linux 的 IP(192.168.200.128),显示 “Welcome to nginx!” 即成功。
- 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、图片等),步骤如下:
- 清理 Nginx 默认资源:
删除 Nginx html 目录下的默认文件(index.html、50x.html):
rm -rf /usr/local/nginx/html/* |
- 上传前端静态资源:
用 FinalShell 把前端打包后的资源(如 dist 目录下的所有文件)上传到/usr/local/nginx/html。
- 配置 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; # 后端服务地址 } } |
- 重新加载 Nginx 配置:
/usr/local/nginx/sbin/nginx -s reload |
- 访问测试:
浏览器输入192.168.200.128,能看到前端页面,且接口调用正常(无跨域报错)即成功。
避坑:若页面空白,按Ctrl+F5强制刷新(清除浏览器缓存);若接口 404,检查 Nginx 反向代理配置是否正确。
4.2 后端项目部署(Spring Boot)
Spring Boot 项目打包为 JAR 包,直接在 Linux 上用java -jar运行,步骤如下:
4.2.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能返回数据)。
- 创建 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 打包项目
- 检查 pom.xml 配置:
确保 pom.xml 中包含 Spring Boot 打包插件(否则无法打成可执行 JAR):
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> |
- 执行打包命令:
在 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 包
- 上传 JAR 包:
在 Linux 上创建/usr/local/app目录(用于存放项目 JAR 包),并上传 JAR 包:
mkdir -p /usr/local/app # 创建目录 # 用FinalShell把JAR包上传到/usr/local/app |
- 启动项目:
- 前台启动(测试用,窗口关闭服务停止):
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 & |
- 验证启动:
# 查看日志(确认无报错) tail -f /usr/local/app/tlias.log # 查看项目进程 ps -ef | grep tlias # 能看到java进程即成功 |
- 访问测试:
- 浏览器访问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 环境变量:
- Windows 端查看本地环境变量:
echo %OSS_ACCESS_KEY_ID% # 如:LTAI5tFww3VE7EZSs9dfh7j5 echo %OSS_ACCESS_KEY_SECRET%# 如:3eVYBbuK1P8rX5Tv0ge81kKG1TrOLs |
- 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 # 能显示即成功 |
五、实战避坑与总结
- 网络问题:ping 不通或连接超时,优先检查 VMware 虚拟网络配置(NAT 模式、子网 IP),或重新添加网卡。
- 权限问题:操作文件 / 目录时报 “Permission denied”,用chmod修改权限(如chmod 777 文件名),或切换 root 用户(su root)。
- 服务启动失败:查看日志(如 MySQL 日志/usr/local/mysql/data/localhost.err、项目日志tlias.log),根据报错排查(如端口被占用、配置错误)。
- 生产环境建议:
- 不关闭防火墙,只开放必要端口(如 80、443、3306、8080);
- 用nohup后台运行项目,日志定期归档(避免占满磁盘);
- 用systemd管理服务(实现开机自启)。
如果对你有帮助,欢迎点赞 + 收藏 + 关注!