给php打补丁,php 内核打补丁之 php-fpm
默认php-cgi未集成php-fpm功能,通过打补丁可增加--fpm和--fpm-config选项,使其以php-fpm模式启动。操作步骤:下载对应版本源码和补丁文件,解压后打补丁,编译时使用--enable-fpm参数。
在PHP的生态中,php-cgi和php-fpm的关系常常让新手感到困惑。实际上,默认的php-cgi并未集成php-fpm功能,但通过打补丁可以轻松实现。下面先看看未打补丁和已打补丁的php-cgi帮助信息对比:
未打补丁时,php-cgi的帮助信息如下:
$ ./php-cgi -h
Usage: php-cgi.patch [-q] [-h] [-s] [-v] [-i] [-f ]
php-cgi.patch [args...]
-a Run interactively
-b | Bind Path for external FASTCGI Server mode
-C Do not chdir to the script's directory
-c | Look for php.ini file in this directory
-n No php.ini file will be used
-d foo[=bar] Define INI entry foo with value 'bar'
-e Generate extended information for debugger/profiler
-f Parse . Implies `-q'
-h This help
-i PHP information
-l Syntax check only (lint)
-m Show compiled in modules
-q Quiet-mode. Suppress HTTP Header output.
-s Display colour syntax highlighted source.
-v Version number
-w Display source with stripped comments and whitespace.
-z Load Zend extension .
-T Measure execution time of script repeated times.
注意看,默认的php-cgi帮助信息中并没有`-x`和`-y`这两个选项。而一旦打上php-fpm补丁,选项就会发生变化,具体如下:
$ php-cgi -h
Usage: php [-q] [-h] [-s] [-v] [-i] [-f ]
php [args...]
-a Run interactively
-b | Bind Path for external FASTCGI Server mode
-C Do not chdir to the script's directory
-c | Look for php.ini file in this directory
-n No php.ini file will be used
-d foo[=bar] Define INI entry foo with value 'bar'
-e Generate extended information for debugger/profiler
-f Parse . Implies `-q'
-h This help
-i PHP information
-l Syntax check only (lint)
-m Show compiled in modules
-q Quiet-mode. Suppress HTTP Header output.
-s Display colour syntax highlighted source.
-v Version number
-w Display source with stripped comments and whitespace.
-x, --fpm Run in FastCGI process manager mode.
-y, --fpm-config
Specify alternative path to FastCGI process manager config file.
-z Load Zend extension .
-T Measure execution time of script repeated times.
打补丁后,php-cgi就可以通过`--fpm`和`--fpm-config`参数以php-fpm模式启动了,例如:
$ php-cgi --fpm --fpm-config ~/php/etc/php-fpm.conf
方法:
需要说明的是,这个过程并不复杂,核心就是下载源码和对应的补丁文件。下面以php-5.2.10版本为例,演示具体操作步骤:
1. 首先,从 http://museum.php.net/ 下载对应版本的源码包。在终端中执行以下命令:
$ cd ~/ && mkdir src && cd src && wget "http://museum.php.net/php5/php-5.2.10.tar.bz2" && tar -jxf php-5.2.10.tar.bz2
2. 然后,到 http://php-fpm.org/downloads/ 下载对应版本的补丁文件,并执行打补丁操作:
$ cd ~/src && wget "http://php-fpm.org/downloads/php-5.2.10-fpm-0.5.13.diff.gz" && gzip -cd php-5.2.10-fpm-0.5.13.diff.gz | patch -d php-5.2.10 -p1
完成以上步骤,补丁就打好了。之后在编译PHP时,`./configure`参数中就可以使用`--enable-fpm`选项了。其他版本的PHP应用此方法也是一样的道理。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。















