软链接
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;