Linux项目

【附件】关于自动部署LNMP的软链接、FPM解析、sed自动替换和ufw allow 80/tcp 核心知识点

2026-05-17 22:42 · 0 次阅读 · 1 分钟阅读 · 添加评论
📑 文章目录 收起 ▴

软链接

  • ln = link(链接) -s = soft(软连接,快捷方式) -f强制执行 必须用绝对路径
  • 创建后必须 nginx -t 测试 + 重启服务
  • 软连接 = 创建快捷方式,不是复制文件
  • 命令:ln -sf 原始配置 启用目录
  • 只用维护仓库配置,开关网站只删 / 建快捷方式

例:ln -sf /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/

写好 WordPress 的 Nginx 配置 → 放在 sites-available(备用仓库) 用软链接,把它 “激活” 放到 sites-enabled (软链接)不想用这个网站了,只删除软链接即可,原配置文件还在,方便以后恢复

FPM解析

PHP-FPM = PHP FastCGI Process Manager(快速 CGI 进程管理器)

Nginx是wab服务器,但不能独立运行PHP,需要专门跑PHP的程序也就是PHP-FPM

完整程序运作流程
浏览器请求
    ↓
到达服务器 80 端口
    ↓
Nginx 接收请求
    ↓
判断请求类型:
    ├── 静态文件(html/jpg/css)→ Nginx 直接返回
    └── 动态文件(.php)→ 转发给 PHP-FPM
                ↓
PHP-FPM 执行 PHP 代码
                ↓
连接 MariaDB 数据库(查询文章/用户)
                ↓
生成 HTML 网页
                ↓
返回给 Nginx
                ↓
Nginx 返回给浏览器

FastCGI 是 Nginx 和 PHP-FPM 之间的通信协议(语言)

include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;

用 FastCGI 协议,把 PHP 请求发给本机的 PHP-FPM

sed = 全自动文本替换工具

不用手动 nano 编辑,不用鼠标,不用键盘敲,命令行直接改文件

sed使用方法
sed -i "s/旧内容/新内容/g" 文件名

sed:命令本身

-i:直接修改文件(必须加!不加只会预览不改文件)

s:substitute 替换

g:global 全局替换(一行里出现多次都替换)

注意:

1. -i 非常重要

不加 -i = 只看不改

加了 -i = 真正修改文件

2. 分隔符用 /

s/旧/新/

ufw allow 80/tcp

ufw allow:放行端口 80/tcp:放行 TCP 协议 80 端口(HTTP)

核心判断:if command -v ufw &> /dev/null; then

1 command -v ufw

  • command -v:Shell 内置命令,检查某个命令是否存在、是否能执行
  • 作用:查看系统里有没有安装 ufw
    • 安装了:输出命令路径 /usr/sbin/ufw
    • 没安装:什么都不输出

❌ 初学者常错:用 which ufw

区别:which 是外部命令,部分精简系统没有;command -v 是 Shell 内置,兼容性更强,企业脚本标准写法

2 &> /dev/null

  • /dev/null:Linux 的黑洞设备,丢进去的内容全部消失
  • &>标准输出 + 标准错误 全部重定向(不管有没有报错,都扔掉)
  • 目的:不打印检查结果,只做判断,不刷屏日志

通俗讲:悄悄检查有没有 ufw,查到的结果我不要,只看 “有没有” 这个布尔结果。

3 if ...; then

  • 如果前面命令执行返回值为 0(成功 = 存在 ufw),就执行 then 里的内容

两个常见报错

502 Bad Gateway

PHP‑FPM 没启动:systemctl status php8.2-fpm

文章 URL 404

原因:Nginx 缺少伪静态:

try_files $uri $uri/ /index.php?$args;

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注