day06---19-项目部署(Linux)

28 阅读3分钟

把你在 Windows/IDEA 里跑得好好的项目,搬到 Linux 服务器 上稳定运行,并能被别人访问。

你可以把它想成“开店流程”:

进店(SSH)→ 找货架(目录)→ 搬货(上传/解压)→ 装设备(JDK/MySQL/Nginx)→ 开门营业(启动/放行端口)→ 盯监控(日志/进程)


这一章要掌握的 4 件核心事

  1. 会连服务器(FinalShell/SSH)
  2. 会在 Linux 上找文件、看日志、改配置(cd/ls/tail/vim)
  3. 会装三件套:JDK + MySQL + Nginx
  4. 会部署前后端并后台运行: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:复制目录要 -r
  • mv 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 步)

  1. 上传 jdk-xx.tar.gz/root

  2. 解压到 /usr/localtar -zxvf xxx.tar.gz -C /usr/local/

  3. 配环境变量 /etc/profile

    • export JAVA_HOME=...
    • export PATH=$JAVA_HOME/bin:$PATH
  4. source /etc/profile 让它立刻生效

  5. java -version 验证

常见坑:JAVA_HOME 路径写错;改完 profile 没 source;新开终端才生效。


4)MySQL 安装

关键点1:先卸载冲突的 mariadb

  • 查:rpm -qa | grep mariadb
  • 卸:rpm -e --nodeps xxx

关键点2:初始化会生成临时密码(一定保存)

  • mysqld --initialize ...
  • 日志里会给 root 临时密码

关键点3:远程连不上通常是两类问题

  1. 账号权限:root 默认只允许 localhost

    • 创建 root@'%' 并授权 + FLUSH PRIVILEGES;
  2. 防火墙没放行 3306

    • 放端口:firewall-cmd --add-port=3306/tcp --permanent
    • firewall-cmd --reload
    • 或临时关闭:systemctl stop firewalld

5)Nginx 安装与启动

  1. yum 装依赖:pcre/zlib/openssl + gcc
  2. 解压 nginx 源码包
  3. ./configure --prefix=/usr/local/nginx
  4. make && make install
  5. 启动:/usr/local/nginx/sbin/nginx
  6. 重载配置:sbin/nginx -s reload
  7. 停止:sbin/nginx -s stop

6)项目部署(最重要)

6.1 前端部署(Nginx)

  1. 清空 nginx html/ 旧资源
  2. 上传你的前端静态资源到 html/
  3. 上传新的 nginx.confconf/
  4. 重载:sbin/nginx -s reload
  5. 浏览器缓存问题:Ctrl + F5

6.2 后端部署(SpringBoot jar)

  1. IDEA 打包:package(一般跳过 test)

  2. Linux 建目录:mkdir -p /usr/local/app

  3. 上传 jar 到 /usr/local/app

  4. 前台启动测试:java -jar xxx.jar

  5. 正式:后台运行 + 写日志(最常用

    • 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/profilesource 生效
  • tail -f tlias.log 看后端日志
  • 能解释:为什么 MySQL 远程连不上(账号权限 / 防火墙)
  • 能用 nohup ... &> log & 后台跑 jar
  • 能用 ps -ef | grep 找到进程并 kill 掉