学而实习之 不亦乐乎

Nginx 显示空白页面的问题及解决办法

2023-12-07 21:07:30

Nginx 下运行 php 的程序时返回 200 访问却是空白页问题的解决方法

Linux 中安装 php-fpm 服务后, html 静态页面可以正常访问,但 phpinfo 页面虽然返回的状态码是 200,却总是空白页,也没有任何错误信息。说明 nginx 已经将页面转移给 php 处理了,所以问题应该在配置上,经过查找发现需要在 nginx 的配置中加入如下代码:

fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;

当安装完 nginx 后,默认的 fastcgi_params 配置文件中没有上面这句。

conf 文件中的代码如下:

location ~ .php$ {
  root           html;
  fastcgi_pass   127.0.0.1:9000;
  fastcgi_index  index.php;
  #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
  fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include        fastcgi_params;
}

或在 fastcgi_params 配置文件中加入如下代码:

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;
fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;