在 LNMP一键安装包 环境中,PHP-FPM 的进程池配置文件路径与标准安装略有不同。以下是具体位置和配置方法:
一、PHP-FPM 进程池配置文件路径
主配置文件目录
LNMP 的 PHP-FPM 配置位于独立目录中:
/usr/local/php/etc/php-fpm.conf # 主配置文件 /usr/local/php/etc/php-fpm.d/ # 进程池配置目录
默认进程池文件
默认站点(如 localhost)的池配置文件:
/usr/local/php/etc/php-fpm.d/www.conf # 默认进程池配置
新增站点池文件
当您通过 LNMP 命令添加站点时,会自动生成独立进程池配置:
lnmp vhost add # 添加站点命令
生成的配置文件路径示例:
/usr/local/php/etc/php-fpm.d/example.com.conf # 站点域名命名的配置
二、手动为站点创建独立进程池
若需手动配置(如未使用 lnmp vhost add),步骤如下:
1. 创建进程池配置文件
# 进入进程池配置目录
cd /usr/local/php/etc/php-fpm.d/
# 复制默认配置并修改(以站点 example.com 为例)
cp www.conf example.com.conf vim example.com.conf
2. 修改关键配置项
ini
[example.com] ; 池名称(必须唯一);
修改监听方式(推荐Unix Socket)
listen = /tmp/php-cgi-example.com.sock ;
注意路径格式; 设置用户/组(需与Nginx用户一致)
user = www group = www;
进程管理参数
pm = dynamicpm.max_children = 20 pm.start_servers = 5 pm.min_spare_servers = 2 pm.max_spare_servers = 8;
安全限制(重要!)
security.limit_extensions = .php
php_admin_value[open_basedir] = /home/wwwroot/example.com:/tmp
? LNMP 默认使用 www 用户(非 www-data),请保持统一。
三、配置 Nginx 匹配进程池
编辑站点 Nginx 配置(位于 /usr/local/nginx/conf/vhost/example.com.conf):
server {
server_name example.com;
root /home/wwwroot/example.com;
location ~ \.php$ {
# 指向自定义的Socket路径
fastcgi_pass unix:/tmp/php-cgi-example.com.sock;
include fastcgi.conf;
}
}四、重启服务生效
# 重启PHP-FPM(LNMP专用命令) lnmp php-fpm restart # 或传统方式/etc/init.d/php-fpm restart # 重启Nginxlnmp nginx restart
五、验证配置是否生效
检查进程池
ps aux | grep php-fpm
输出应包含池名称:
www 1234 0.0 1.2 123456 7890 ? S Jun13 0:00 php-fpm: pool example.com
测试Socket文件
ls -l /tmp/php-cgi-*.sock
应显示新创建的Socket文件,权限为 srw-rw----。
六、LNMP 环境注意事项
默认监听方式
LNMP 默认使用 Unix Socket 而非 TCP 端口,路径格式为 /tmp/php-cgi.sock(默认池)或自定义路径。
用户权限
必须保持统一:
PHP-FPM 进程池用户:www
Nginx 用户:www(在 nginx.conf 中确认)
网站文件所有者:www(建议)
日志位置
PHP-FPM 错误日志:
/usr/local/php/var/log/php-fpm.log
站点错误日志:
/home/wwwlogs/example.com_error.log
常见问题解决
问题:502 Bad Gateway
检查 Nginx 的 fastcgi_pass 路径是否与 FPM 配置的 listen 完全一致
确认 /tmp/ 目录权限:chmod 1777 /tmp
查看错误日志:tail -f /home/wwwlogs/example.com_error.log
问题:进程池未启动
检查配置语法:/usr/local/php/sbin/php-fpm -t
确保没有重复的池名称([example.com] 必须唯一)
通过以上步骤,您可以在 LNMP 环境中为每个站点配置独立的 PHP-FPM 进程池,实现资源隔离和安全控制。