nginx+php-fpm配置后页面显示空白的解决方法以及用nginx和php-fpm解决“502 Bad Gateway”问题...

https://stackoverflow.com/questions/15423500/nginx-showing-blank-php-pages

For reference, I am attaching my location block for catching files with the .php extension:

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

Double-check the /path/to/fastcgi-params, and make sure that it is present and readable by the nginx user.

 

由于nginx与php-fpm之间的一个小bug,会导致这样的现象: 网站中的静态页面 *.html 都能正常访问,而 *.php 文件虽然会返回200状态码, 但实际输出给浏览器的页面内容却是空白。 简而言之,原因是nginx无法正确的将 *.php 文件的地址传递给php-fpm去解析, 相当于php-fpm接受到了请求,但这请求却指向一个不存在的文件,于是返回空结果。 为了解决这个问题,需要改动nginx默认的fastcgiparams配置文件: vi /etc/nginx/fastcgi_params 在文件的最后增加两行: 


fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO                $fastcgi_script_name;


然后重启一下服务:


service php5-fpm reload service nginx reload            //重新加载各项配置改动。
 

 

 

https://wildlyinaccurate.com/solving-502-bad-gateway-with-nginx-php-fpm/

升级php-fpm后,我的基于PHP的站点返回“502 Bad Gateway”错误。当php5-fpm软件包重新配置自己以侦听不同的套接字时,就会发生这种情况。这是你如何解决它。

检查以确保php-fpm正在运行  ps aux | grep php- 如果你在输出中看不到任何php-fpm进程,那么你可能需要重新安装php-fpm。如果php-fpm运行正常,那么跳过第一步。

sudo apt-get remove php5 php5-cgi php5-fpm
sudo apt-get install php5 php5-cgi php5-fpm

这里需要注意的是,安装软件包的顺序很重要。在过去,我发现以错误的顺序安装它们会导致包配置错误。

接下来,获取php-fpm以侦听正确的主机/端口。在/etc/php5/fpm/pool.d/www.conf变化的listen值以匹配fastcgi_pass您的Nginx的配置位置。例如,我改变了我的意见:

listen = /var/run/php5-fpm.sock

至:

listen = 127.0.0.1:9000

如果您正在配置php-fpm以侦听Unix套接字,则还应检查套接字文件是否具有正确的所有者和权限。虽然我不推荐它,但您可以简单地为所有人提供读写权限sudo chmod go+rw /var/run/php5-fpm.sock

重启php-fpm,sudo service php5-fpm restart一切都应该正常工作。

转载于:https://my.oschina.net/u/2902720/blog/2988211

你可能感兴趣的:(nginx+php-fpm配置后页面显示空白的解决方法以及用nginx和php-fpm解决“502 Bad Gateway”问题...)