SEO 百科

PHP-FPM

本页目录

PHP-FPM

PHP-FPM 是 PHP 的一种进程管理器实现,通过 FastCGI 接收请求,请求由 Web 服务器转来,用一组常驻 worker 进程执行脚本并返回响应[1]。它是 WordPress、多数开源 CMS、自建 PHP 站点,在 Nginx 后面的标准搭配[2]。

池的配置是核心

它的行为由池配置决定:worker 数量、每个进程可处理的请求数、启动方式(静态、动态、按需)[1]。这三个参数一起决定并发能撑到多少,也决定内存占用。

判断方式很朴素:给足并发压一轮,看是否出现请求排队与响应变慢,再看内存是否触顶。进程数设得过大时,内存耗尽会换来 502,抓取端表现为服务器错误[3]。

三条与搜索相关的链路

响应时间。PHP 页面每次请求都要执行脚本,慢的插件与未缓存的查询直接抬首字节时间,加载性能是核心 Web 指标衡量的一项[4]。

超时链条。Nginx 侧的读超时与 FPM 侧的执行超时都要看,任一端过短都会截出半截页面。

Opcode 缓存。开启字节码缓存能显著减少重复编译,是这一层最常见的提速项[1]。

升级时要做的两件事

先看版本支持矩阵,PHP 各版本有维护期限,跑旧版本会同时带来安全与兼容问题[2]。再逐项验证扩展与框架兼容,在测试环境跑完整回归,改版与升级都按迁移那条流程处理。

常见误用

第一种是把 worker 数当性能旋钮无脑加大,内存先撑不住。第二种是不开字节码缓存,每次都重新编译脚本[1]。第三种是把慢页面归因到服务器带宽,实际是插件与数据库查询。

附录

参见

参考资料

官方(境外)

  1. 《PHP-FPM 文档》,PHP。
  2. 《WordPress Requirements》,WordPress Make。
  3. 《Google 搜索中的 HTTP 与网络错误》,Google 搜索中心。
  4. 《了解 Core Web Vitals 和 Google 搜索结果》,Google 搜索中心。

外部链接