Nginx 访问 PHP 文件空白(设置正确的 Nginx 解析 PHP 配置)

Nginx 访问 html 文件正常,但是访问 php 文件空白,状态码 200,也没有错误日志信息,经过排查后是因为 Nginx 的 PHP、fastcgi 的配置问题。

系统环境

  • Linux CentOS7
  • nginx/1.12.0
  • PHP 7.1.6

交代

  • 访问 html 文件正常
  • 访问 php 文件空白、状态码 200、无错误日志
  • 系统执行了 yum -y update
  • 进行了 HTTPS 部署
  • 出现问题的是新增的第二个站点,第一个站点未发生故障

问题修复

经过排查,是因为 Nginx 中的 PHP 配置。

出错时的配置

location ~ \.php$ {
   fastcgi_pass   127.0.0.1:9000;
   fastcgi_index  index.php;
   fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
   include        fastcgi_params;
}

需要修改成的配置

location ~ \.php$ {
   fastcgi_pass   127.0.0.1:9000;
   fastcgi_index  index.php;
   include        fastcgi.conf;
}

修改的地方是两处

  • 去掉 fastcgi_param
  • 把 include 的 fastcgi_params 改为 fastcgi.conf

重启 Nginx 后,一切正常了。

fastcgi.conf 这样的一个配置增加在于硬编码的问题,有兴趣的可以 vimdiff fastcgi.conf fastcgi_params 看看两个文件的区别。

相关资料

Nginx 的 fastcgi_params、fastcgi.conf 的配置历史英文博文 fastcgi_params Versus fastcgi.conf - Nginx Config History

知识共享许可协议
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。
随喜
支付宝随喜
微信随喜

An American ex-pat and former Chase bank vice president has revealed the devastating moment he was forced to choose which of his two dying children to try and save during the Sri Lanka bombings on Easter Sunday. Jordan 11 Concord 2018 http://www.jordan11-concord.com/

Generic Tadalis Sx Soft Omnigen Mezieres <a href=http://ordercheapvia.com>viagra</a>; Plavix Online Coupons Kamagra Kaufen Gunstig Buy Viagra Taiwan 49

Amoxicillin Clav Er Efectos Del Viagra En Jovenes Produit 1 <a href=http://tadalafonline.com>cialis online</a> Discount Generic Viagra And Cialis Levitra Prezzo In Italia Generic Propecia Best Price

K Clv 600 Pet Meds Amoxicillin <a href=http://cialisong.com>canadian cialis</a> Viagra Generico Costo Acquistare Sildenafil Francia Keflex Urinary Tract Infection