Nginx运行PHP需正确转发.php请求至PHP-FPM:一、确认PHP-FPM已安装并运行;二、在server块中配置location ~ .php$,含fastcgi_pass和关键fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;三、php.ini中short_open_tag=Off、asp_tags=Off,仅用标准标签;四、确保文件权限与root路径正确,访问不显示源码。

PHP 要在 Nginx 下正常运行,Nginx 本身不解析 PHP 标签(如 ),它只是把请求转发给 PHP 处理器(通常是 PHP-FPM)。所以“加 PHP 标签”不是 Nginx 配置的重点,关键在于:确保 Nginx 正确将 .php 请求交给 PHP-FPM,并且 PHP 解析器已启用、能识别标准标签。
以下是实际生效的要点:
一、确认 PHP 已安装并运行
- 运行
php -v查看 PHP 版本,确认服务在运行(如systemctl status php-fpm或php-cgi -v) - 若用宝塔、PHPStudy 等集成环境,检查面板中 PHP 服务状态是否为“正在运行”
二、Nginx 必须配置 PHP 处理块
在站点的 server { } 块中,必须包含类似以下的 location ~ \.php$ 区块(缺一不可):
- 匹配
.php文件 - 指定
fastcgi_pass(指向 PHP-FPM 监听地址,如127.0.0.1:9000或unix:/tmp/php-cgi.sock) - 设置关键
fastcgi_param,尤其是:fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
(⚠️ 注意:用$realpath_root而非$document_root,可避免软链接或子目录路径错误)
示例片段:
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
}
三、PHP 配置需允许标准标签
检查 php.ini 中以下两项(默认通常已开启):
-
short_open_tag = Off→ 保持关闭,不要用,只用 -
asp_tags = Off→ 确保未启用 ASP 风格标签(如),避免干扰
✅ 正确写法(Nginx + PHP-FPM 下稳定支持):
<?php echo 'Hello World'; ?>
❌ 不推荐或可能失效的写法:
echo 'Hello'; ?> // 依赖 short_open_tag=On(不兼容默认配置)
// 需 asp_tags=On(已废弃,多数环境禁用)
四、验证文件权限与入口路径
- 确保
.php文件放在 Nginxroot指向的目录下(如/www/wwwroot/site/) - 文件权限为
644,目录为755,且 Nginx 用户(如www)有读取权限 - 浏览器访问
http://yoursite/test.php,内容应直接输出,不显示源码;若显示源码,说明 PHP 未接管请求(Nginx 配置缺失或fastcgi_pass错误)
不复杂但容易忽略
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











