在 Ubuntu 系统中配置 PHP-FPM 时,最常遇到的困惑就是找不到配置文件的具体位置。尤其是刚安装完 PHP 7.4、8.0 或 8.1,想进行性能优化,翻遍目录也未必能一次找到。别担心,下面就将关键路径和修改要点一次性讲清楚。

1. 主配置文件路径
Ubuntu 系统中,PHP-FPM 的主配置文件位于 /etc/php/{version}/fpm/php-fpm.conf({version} 需替换为你实际安装的 PHP 版本,例如 7.4、8.0、8.1 等)。该文件控制 PHP-FPM 的全局设置,包括进程管理方式、日志路径、错误处理策略等。修改后必须重启服务才能生效。
2. 进程池配置文件路径
日常调优工作中打交道最多的其实是进程池配置文件,路径为 /etc/php/{version}/fpm/pool.d/www.conf。这个文件定义了某个进程池的具体参数:监听地址(Unix 套接字或 TCP 端口)、进程数量上限、运行用户权限等。大部分调优需求(例如调整 pm.max_children 以控制并发进程数,或修改 listen 以改变监听方式)只需编辑这一个文件即可。
3. 其他相关配置文件
- PHP 模块配置:如需自定义 PHP 扩展参数(比如
opcache的加速策略),可修改/etc/php/{version}/fpm/php.ini(全局 PHP 配置),或直接编辑/etc/php/{version}/fpm/conf.d/目录下的扩展配置文件,例如20-opcache.ini。 - Socket 文件路径:如果配置中使用 Unix 套接字(例如
listen = /run/php/php{version}-fpm.sock),对应的 socket 文件默认生成在/run/php/目录下。务必确认你的 Web 服务器(如 Nginx)有权限访问该文件,否则请求将无法被处理。
4. 修改后的生效步骤
无论你修改的是主配置文件还是进程池配置,都需要执行以下命令使改动生效:
sudo systemctl restart php{version}-fpm # 重启 PHP-FPM 服务
# 示例:sudo systemctl restart php8.1-fpm
注意事项
- 强烈建议在修改前备份原文件,例如
sudo cp /etc/php/8.1/fpm/pool.d/www.conf /etc/php/8.1/fpm/pool.d/www.conf.bak。一个错误的配置可能导致服务无法启动,拥有备份即可快速回滚。 - 如果你在使用 Nginx 或 Apache,还需要同步修改其配置文件中的
fastcgi_pass指令,让它指向 PHP-FPM 的监听地址(Unix 套接字或 TCP 端口)。这一步漏掉,PHP 请求将无法被正常处理。
