nginx php空白页如何处理?
安装完nginx,html页面能正常浏览 但是php文件的页面打开后是一篇空白。
查看php-fpm日志与nginx日志都没找到问题,后来发现是缺少这么一句话在nginx的配置文件中:
这句用来定义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白屏空白页问题
nginx php 返回200,但是空白页
ngxin;php-fpm安装后,html静态页面没问题,但是phpinfo页面虽然返回200,但总是空白页。
也没有任何报错,考虑应该是nginx已经将php页面转移给php处理了,所以问题应该在php的配置上,经过查找,发现需要在nginx中加入:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
注意,安装完nginx后默认的fastcgi_params配置文件中没有上面这句话。
在nginx.conf中的
或者在fastcgi_params配置文件中加入:
重启nginx,便可以显示出页面了。