nginx下fastcgi_param运行php出现空白页的问题

发布时间:2019-10-18编辑:脚本学堂
安装完nginx以后,发现html页面能正常浏览,但php文件的页面打开后是一片空白,查看php-fpm日志与nginx日志都没找到问题。

安装完nginx以后,发现html页面能正常浏览,但php文件的页面打开后是一片空白,查看php-fpm日志与nginx日志都没找到问题。

网上的一种说法是缺少这么一句话在nginx的配置文件里:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
详情请参考这篇文章。

解决:这句话是定义php中用到的服务器变量,即:$_SERVER。

http://wiki.nginx.org/NginxHttpFcgiModule 中有这么一句话:
This module allows Nginx to interact with FastCGI processes and control what parameters are passed to the process。

其实也就是服务器像你的处理php的cgi传递过去他需要的一些参数,而至少要有下面的两个参数php才能执行起来:
Below is an example of the minimally necessary parameters for PHP:
 

复制代码 代码如下:
fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;

Parameter SCRIPT_FILENAME is used by PHP for determining the name of script to execute, and QUERY_STRING contains the parameters of the request.

所以,在没有定义SCRIPT_FILENAME这个系统变量时,php是没法解释执行的。

此变量的定义可以写在nginx的配置文件nginx.conf里,也可以写在外部文件,然后用include的方式在nginx.conf里包含进来。

您可能感兴趣的文章:
nginx+php-fpm页面显示空白的解决方法
有关nginx+php-fpm配置文件的组织结构
nginx下跑php的程序,返回200,但是空白页