把你在 Windows/IDEA 里跑得好好的项目,搬到 Linux 服务器 上稳定运行,并能被别人访问。
你可以把它想成“开店流程”:
进店(SSH)→ 找货架(目录)→ 搬货(上传/解压)→ 装设备(JDK/MySQL/Nginx)→ 开门营业(启动/放行端口)→ 盯监控(日志/进程)
这一章要掌握的 4 件核心事
- 会连服务器(FinalShell/SSH)
- 会在 Linux 上找文件、看日志、改配置(cd/ls/tail/vim)
- 会装三件套:JDK + MySQL + Nginx
- 会部署前后端并后台运行:nginx 放前端,java -jar 跑后端,nohup 挂后台,tail 看日志
1)Linux 最常用命令(够部署用了)
目录/文件
ls/ll:看目录内容cd /path:进目录;cd ..上一级;cd ~回家mkdir -p /usr/local/app:一次建多级目录rm -rf xxx:危险(删库级别),一定确认路径再敲
看文件/看日志(部署时天天用)
cat file:文件小才用more file:分页看head -20 file:看前20行tail -20 file:看后20行tail -f app.log:盯日志(最常用) f:动态读取并显示(实时刷新)
拷贝/移动/压缩
cp -r A B:复制目录要-rmv A B:移动/改名(目标是目录=移动,否则=改名)tar -zxvf xxx.tar.gz -C /usr/local:解压到指定目录(-C 很常用)
查找
find /path -name "*.jar":找文件grep -n "ERROR" app.log:找关键字;-n显示行号
2)软件安装你要懂的“套路”
4 种方式你不用背太细,记住用途:
- 二进制包(tar.gz) :JDK/MySQL 这种常见
- yum:一键装依赖(比如装 vim、pcre、gcc)
- rpm:装/卸系统包(比如卸载 mariadb)
- 源码编译:Nginx 常见(configure → make → make install)
3)JDK 安装(你只要记住这 5 步)
-
上传
jdk-xx.tar.gz到/root -
解压到
/usr/local:tar -zxvf xxx.tar.gz -C /usr/local/ -
配环境变量
/etc/profile:export JAVA_HOME=...export PATH=$JAVA_HOME/bin:$PATH
-
source /etc/profile让它立刻生效 -
java -version验证
常见坑:JAVA_HOME 路径写错;改完 profile 没 source;新开终端才生效。
4)MySQL 安装
关键点1:先卸载冲突的 mariadb
- 查:
rpm -qa | grep mariadb - 卸:
rpm -e --nodeps xxx
关键点2:初始化会生成临时密码(一定保存)
mysqld --initialize ...- 日志里会给 root 临时密码
关键点3:远程连不上通常是两类问题
-
账号权限:root 默认只允许 localhost
- 创建
root@'%'并授权 +FLUSH PRIVILEGES;
- 创建
-
防火墙没放行 3306:
- 放端口:
firewall-cmd --add-port=3306/tcp --permanent firewall-cmd --reload- 或临时关闭:
systemctl stop firewalld
- 放端口:
5)Nginx 安装与启动
- yum 装依赖:pcre/zlib/openssl + gcc
- 解压 nginx 源码包
./configure --prefix=/usr/local/nginxmake && make install- 启动:
/usr/local/nginx/sbin/nginx - 重载配置:
sbin/nginx -s reload - 停止:
sbin/nginx -s stop
6)项目部署(最重要)
6.1 前端部署(Nginx)
- 清空 nginx
html/旧资源 - 上传你的前端静态资源到
html/ - 上传新的
nginx.conf到conf/ - 重载:
sbin/nginx -s reload - 浏览器缓存问题:
Ctrl + F5
6.2 后端部署(SpringBoot jar)
-
IDEA 打包:
package(一般跳过 test) -
Linux 建目录:
mkdir -p /usr/local/app -
上传 jar 到
/usr/local/app -
前台启动测试:
java -jar xxx.jar -
正式:后台运行 + 写日志(最常用)
nohup java -jar xxx.jar &> app.log &
6.3 停止服务(重要)
- 找进程:
ps -ef | grep xxx - 杀进程:
kill -9 PID
6.4 线上看日志(重要)
tail -f app.log
7)一个非常重要的安全提醒(AccessKey 示例)
OSS 的 AccessKeyId/Secret 属于密钥,不要发到群里/截图/提交到 git。
如果你曾经在任何地方公开过真实密钥,建议你立刻去阿里云控制台旋转/重置密钥,然后只用环境变量方式配置。
“部署自测清单”
- 能用 FinalShell 连上
192.168.100.128 - 会
cd /usr/local/app、会ll看文件 - 会
vim /etc/profile并source生效 - 会
tail -f tlias.log看后端日志 - 能解释:为什么 MySQL 远程连不上(账号权限 / 防火墙)
- 能用
nohup ... &> log &后台跑 jar - 能用
ps -ef | grep找到进程并 kill 掉