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

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

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

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

 

因为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;php-fpm


而后重启一下服务:网站


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

 

 

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

升级php-fpm后,个人基于PHP的站点返回“502 Bad Gateway”错误。当php5-fpm软件包从新配置本身以侦听不一样的套接字时,就会发生这种状况。这是你如何解决它。code

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

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一切都应该正常工做。

相关文章
相关标签/搜索