安装完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:
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,但是空白页