发布于2026-07-14 阅读(0)
扫一扫,手机访问
在CentOS里让PHP-FPM和Nginx配合工作,其实并没有想象中那么复杂。只要把几个关键环节理清楚,哪怕是刚接触Linux服务配置的开发者,也能一步步搭起来。下面咱们直接进入正题,从安装到调试,一一拆解。

首先,确保系统里已经装好了这两个组件。CentOS 7/8 上可以用 yum 一路搞定:
sudo yum install epel-release
sudo yum install nginx php-fpm需要说明的是,epel-release 仓库是必须的,因为 Nginx 和 PHP-FPM 默认不在 base 源里。装完之后,可以顺手检查一下版本,确认安装成功。
PHP-FPM 的配置文件通常在 /etc/php-fpm.d/www.conf 或 /etc/php-fpm.conf。核心任务就是告诉 PHP-FPM 该监听哪个地址——是 Unix 套接字还是 TCP 端口,Nginx 才能找到它。
编辑 /etc/php-fpm.d/www.conf:
sudo vi /etc/php-fpm.d/www.conf找到下面这行,把前面的分号去掉:
;listen = /run/php-fpm/www.sock改为:
listen = /run/php-fpm/www.sockUnix 套接字比 TCP 端口性能更好,因为省去了网络协议栈的开销,而且同一台机器上完全够用。后续 Nginx 配置里 fastcgi_pass 也要指向这个套接字。
如果你有特殊需求,比如 PHP-FPM 和 Nginx 不在同一台机器上,那就用 TCP 端口。将 listen 改为:
listen = 127.0.0.1:9000同时 Nginx 配置里要写成:
fastcgi_pass 127.0.0.1:9000;注意:端口 9000 是 PHP-FPM 的默认端口,但生产环境里建议改成其他端口,避免被扫描工具猜中。
Nginx 的配置可以放在主配置文件 /etc/nginx/nginx.conf,但更规范的做法是新建一个站点配置文件,比如 /etc/nginx/conf.d/default.conf。
下面是一个典型的 PHP 站点配置,把关键参数解释一下:
server {
listen 80;
server_name example.com; # 替换为你的域名或IP
root /var/www/html; # 替换为你的网站根目录
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm/www.sock; # 或 fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}这里最关键的是 fastcgi_pass 要和你之前配置的 PHP-FPM 监听地址一致。另外 SCRIPT_FILENAME 参数必须正确,否则 Nginx 无法把请求交给 PHP 解释器。
配置完成后,依次启动两个服务,并设置开机自启:
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
sudo systemctl start nginx
sudo systemctl enable nginx建议先启动 PHP-FPM,再启动 Nginx,因为 Nginx 启动时会检查 upstream 是否可达(虽然 unix socket 不存在也不会导致启动失败,但顺序对调试更友好)。
最简单的验证方法:在网站根目录下创建一个 info.php 文件,内容如下:
然后访问 http://你的服务器IP/info.php。如果能看到 PHP 的配置信息页面,说明一切正常。如果看到的是空白或下载文件,那就需要排查问题了。
遇到问题别慌,日志是最好的帮手。Nginx 和 PHP-FPM 的错误日志分别记录在:
/var/log/nginx/error.log/var/log/php-fpm/error.log常见错误比如 connect() to unix:/run/php-fpm/www.sock failed,多半是 PHP-FPM 没启动或者 socket 的权限问题;File not found 则可能是 root 路径或 SCRIPT_FILENAME 配错了。对照日志一步一步排查,基本都能解决。
以上步骤覆盖了从安装到验证的完整流程。只要按顺序走一遍,CentOS 下 PHP-FPM 与 Nginx 的协同工作模式就能跑起来。剩下的事情,就是根据业务需求调优参数了。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8