Linux 下 PHP-FPM 配置文件位置与修改步骤
一、常见配置文件路径
- 下表按系统与安装方式列出常用路径,其中 {version} 为你的 PHP 版本号(如 8.1、7.4):
| 系统与安装方式 |
主配置文件 |
进程池配置目录/文件 |
备注 |
| Debian/Ubuntu(apt) |
/etc/php/{version}/fpm/php-fpm.conf |
/etc/php/{version}/fpm/pool.d/www.conf |
多版本并存时按版本号区分 |
| CentOS/RHEL(yum/dnf) |
/etc/php-fpm.conf |
/etc/php-fpm.d/*.conf(常见为 www.conf) |
老版本可能为 /etc/php-fpm.d/www.conf |
| 源码/编译安装 |
/usr/local/php-fpm/etc/php-fpm.conf |
/usr/local/php-fpm/etc/php-fpm.d/*.conf |
路径随编译参数变化 |
| Docker 官方 PHP 镜像 |
/usr/local/etc/php-fpm.conf |
/usr/local/etc/php-fpm.d/*.conf |
进入容器后查看与编辑 |
以上路径在不同发行版与安装方式下略有差异,请以实际环境为准。
二、如何快速确认你的实际路径
- 查看 FPM 主配置与包含的池配置(会打印出实际加载的配置文件路径):
- 查看 CLI 与 FPM 分别加载的 php.ini(区分运行模式):
- 在容器内定位(Docker 场景):
- 命令:docker exec -it <容器名> bash,然后执行上面的 php-fpm -t 与 php --ini
- 若使用 systemd,也可通过服务文件确认 ExecStart 指向的配置文件(辅助手段)。
三、需要修改哪些文件
- 调整进程与性能参数(如并发、空闲进程、最大请求数):编辑对应池配置 pool.d/www.conf(或自定义 pool),常见指令:pm、pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers、pm.max_requests。
- 调整监听方式(Unix 套接字或 TCP 端口)与权限:编辑 www.conf 中的 listen,以及 listen.owner / listen.group / user / group;常见示例:
- Unix 套接字:listen = /run/php/php{version}-fpm.sock
- TCP 端口:listen = 127.0.0.1:9000
- 注意区分 CLI 与 FPM 的 php.ini:Web 请求由 FPM 使用 /etc/php/{version}/fpm/php.ini(或编译安装的相应路径),命令行使用 /etc/php/{version}/cli/php.ini;两者互不影响。
- 修改完成后先语法检查再重载:php-fpm -t && systemctl reload php{version}-fpm(或 systemctl reload php-fpm)。
四、与 Web 服务器对接的关键项
- Nginx 常见示例(与 www.conf 中的 listen 保持一致):
- fastcgi_pass unix:/run/php/php{version}-fpm.sock; 或 fastcgi_pass 127.0.0.1:9000;
- 并确保 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 正确设置。
- Apache 可使用 mod_proxy_fcgi,例如:SetHandler “proxy:fcgi://127.0.0.1:9000”。