php 7.3 与 nginx 通信核心是 fastcgi_pass 正确指向 php-fpm 监听地址(如 unix:/run/php/php7.3-fpm.sock)且服务处于 active (running) 状态,配置不匹配将导致 502、空白页或 php 文件下载。

PHP 7.3 和 Nginx 通信的核心是让 Nginx 把 PHP 请求正确转发给 PHP-FPM 进程,关键在 fastcgi_pass 的指向和 PHP-FPM 服务的运行状态。配置不匹配会导致 502 Bad Gateway、空白页或直接下载 PHP 文件。
确认 PHP-FPM 服务已安装并运行
PHP 7.3 必须安装 php7.3-fpm 包(不只是 php7.3-cli)。执行以下命令检查:
-
sudo systemctl status php7.3-fpm—— 应显示 active (running) - 若未运行,启用并启动:
sudo systemctl enable php7.3-fpm && sudo systemctl start php7.3-fpm - 默认监听方式为 Unix socket:
/run/php/php7.3-fpm.sock;也可查监听地址:sudo ss -tuln | grep :9000或查看配置:sudo cat /etc/php/7.3/fpm/pool.d/www.conf | grep "listen ="
配置 Nginx 的 location 块支持 PHP
在站点配置文件中(如 /etc/nginx/sites-enabled/default 或自定义 conf),确保包含如下标准 PHP 处理段落:
- 启用
index.php作为默认索引:index index.php index.html; - 添加 PHP 路由规则(推荐使用 Unix socket,性能更优):
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}
⚠️ 注意:snippets/fastcgi-php.conf 是 Ubuntu/Debian 系统自带的通用 FastCGI 配置,已含 SCRIPT_FILENAME 等必要参数;若用 CentOS 或手动编译 Nginx,需自行补全这些 fastcgi_param 行。
验证通信是否生效
完成配置后务必执行三步验证:
-
sudo nginx -t—— 检查语法是否正确 -
sudo systemctl reload nginx—— 重载配置(不中断服务) - 在网站根目录(如
/var/www/html)新建info.php,内容为:<?php phpinfo(); ?>,然后访问http://your-server-ip/info.php
成功时将显示 PHP 7.3 的详细信息页;若报错 502,请重点检查 socket 文件权限(/run/php/php7.3-fpm.sock 是否被 www-data 用户可读写)及 Nginx worker 进程用户是否与 FPM pool 定义一致(www.conf 中的 user 和 group)。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











