将PHP从5.3.28升级到5.3.29时Nginx出现502错误

   这篇文章主要介绍了将PHP从5.3.28升级到5.3.29时Nginx出现502错误,需要的朋友可以参考下

  今天将PHP从5.3.28升级到5.3.29,发现网站打不开了,提示”502 bad gateway”,访问静态资源可以,但访问任何PHP文件都会502。

  其实之前也发现这个问题,只是一直没找到解决办法,所以我一直将PHP保持在5.3.28版本。

  按照我以前的脾气,我什么软件都得要最新的稳定版,但PHP之类的软件是例外,因为版本高了,会导致很多程序不兼容,相对来说5.3兼容性算是最好的版本之一,当然5.2也可以。

  强迫症实在受不了,官方说5.3.29是5.3的最后一个版本,最后一个版本出现这种问题又一直没解决让我很难受。

  网上搜索了一下,没人出现我这种问题,所有的编译过程,配置过程,都是照旧,之前从5.3.25一直到5.3.28都是用的我写的同一个升级脚本,按道理同一个子版本系列,一样的编译和配置过程,不应该出现问题的。

  为何5.3.25一直到5.3.28都没问题,到了5.3.29就没问题了呢?

  今天终于把问题的根源找到了,我也是醉了……

  由于我不想占用额外的端口,所以Nginx和PHP-FPM之间一直使用的Unix socket,而且据说这种方式效率也高一些。

  PHP升级到5.3.29以后,出现502错误,而且是一打开网页就报错了,不像是由于PHP执行超时导致的Nginx提示502,更像是PHP-FPM异常终止了,或者是Ngxin根本没有连接上fastcgi。

  使用PHP-FPM的日志也是郁闷,我明明开启了日志,还设置了日志路径,但还是没有生成日志。

  好吧,根据前面的思路推测出来的原因找问题:

  1.PHP-FPM一开始工作就异常终止了;

  2.Ngxin根本没有连接上fastcgi。

  第一种可能直接就排除了,因为出现502错误的时候,后台的PHP-FPM进程并没有退出,还存活得好好的。

  那么很可能是第二种可能了,我把Nginx和PHP-FPM的配置文件修改了一下,改成了传统的“地址:端口”的形式

  PHP-FPM配置文件中:

  listen = 127.0.0.1:1234

  Nginx配置文件中:

  fastcgi_pass 127.0.0.1:1234

  重启服务,网站竟然顺利打开了。

  看来就是Nginx没有连接上PHP-FPM了,那么问题出在哪里呢?难道5.3.29去掉了Unix socket的连接方式?我觉得不大可能,查阅更新日志,也没有看到有关的项目啊。

  我将Nginx和PHP-FPM的配置文件改回去。

  PHP-FPM配置文件中:

  listen = /tmp/php-cgi.sock

  Nginx配置文件中:

  fastcgi_pass unix:/tmp/php-cgi.sock;

  重启服务,立马又502了。

  首先想到了检查权限,反正是测试,所以我二话不说直接把那个PHP-FPM的sock文件权限改为777。

  chmod 777 /tmp/php-cgi.sock

  直接打开网页,能打开!

  好吧,就是权限问题了,重启服务,查看php-cgi.sock 的权限

  -rwx------. 1 root root 663 9月 18 00:16 php-cgi.sock

  这。。。原因已经很明了了,怪不得Nginx连不上PHP-FPM,php-cgi.sock的权限竟然是700,

  但问题来了,为什么同样的编译和配置过程,5.3.28之前的版本就没问题呢?我查看另一台没有升级5.3.29的服务器:

  srw-rw-rw- 1 root root 0 9月 16 21:11 php-cgi.sock

  发现其权限是666,这……无法理解了……为什么5.3.28的默认权限配置是666,到了5.3.29就变成700了呢?

  查阅PHP文档,找到解决办法

  将PHP-FPM里的配置文件加入,前两项是指定php-cgi.sock的拥有者和用户组,后一项是指定文件权限。

  listen.owner = www

  listen.group = www

  listen.mode = 0666

  重启服务,问题解决。

时间: 2024-12-23 12:09:07

将PHP从5.3.28升级到5.3.29时Nginx出现502错误的相关文章

将PHP从5.3.28升级到5.3.29时Nginx出现502错误_php技巧

今天将PHP从5.3.28升级到5.3.29,发现网站打不开了,提示"502 bad gateway",访问静态资源可以,但访问任何PHP文件都会502. 其实之前也发现这个问题,只是一直没找到解决办法,所以我一直将PHP保持在5.3.28版本. 按照我以前的脾气,我什么软件都得要最新的稳定版,但PHP之类的软件是例外,因为版本高了,会导致很多程序不兼容,相对来说5.3兼容性算是最好的版本之一,当然5.2也可以. 强迫症实在受不了,官方说5.3.29是5.3的最后一个版本,最后一个版本

Windows 平台10.2.0.1 升级到10.2.0.4 报msvcr71.dll错误解决

Windows 平台10.2.0.1 升级到10.2.0.4 报msvcr71.dll错误解决    问题分析: 肯定是因为MSVCR71.dll文件占用所致. 故需要检查服务和进程是否完全正常关闭. 问题解决思路: 通过检查所有的Oracle服务是否关闭. 找到MSVCR71.dll被哪个进程所占用,将其停止. 参考如下: MSVCR71.DLL 更新时在使用 找到用该DLL的进程,具体方法如下: MSVCR71.DLL is in use during Oracle patch instal

解决Gitlab升级到7.9后出现500/502错误的方法

有两台服务器都装了Gitlab,第一台服务器在升级到Gitlab后出现500/502错误,在重装重导入数据都没有办法解决的情况下,只好作罢全新重新安装了一次,中间倒数据过程苦不堪言.今天再次对另外一台服务器做升级的居然也出现了同样的问题,在正常的rpm Uvn gitlab.rpm reconfigure/restart过程都没有任何问题的情况,居然也出现了500/502错误,感觉应该是Gitlab出现Bug了,于是Gitlab tail下监控发现错误如下: NoMethodError (und

nginx php升级后 socket方式502错误解决办法

nginx php升级php5.3.29后 socket方式会导致网站出现502错误打不开,原因是因为nginx无法操作/tmp/php-cgi.sock(例), 需要在php-fpm.conf里面取消权限部分的注释,改成如下即可,然后重启php进程 listen.owner = www listen.group = www listen.mode = 0666

Win7家庭普通版升级win7旗舰版系统时提示升级失败的原因分析

  1.首先用户要先确定,自己选择和购买的系统盘是不是正版系统盘,如果不是正版系统盘的话,请win7系统用户入手一款正版win7系统盘以后再次选择升级,相信使用正版系统盘以后,应该就不会出现上面的故障了. 2.用户在升级的时候时,还需要考虑自己的计算机硬件是不是过于老旧,虽然说win7对于计算机硬件要求不是十分严格,但是也是有一定基本要求的,因此,如果是使用老旧计算机硬件用户们,为了能够确保在升级以后,win7可以稳定运行,最好是能够更换部分计算机硬件,比如说CPU.显卡或者是内存. 3.还有一

升级Windiows 2012引起MDT的两个路径错误

  1.MDT 的默认安装路径:c:Program FilesMicrosoft Deployment Toolkit 以前的安装路径改成:E:Microsoft Deployment Toolkit 2.升级了系统到 Windows 2012 以后,发现 MDT(版本为 2012.1),发现不能用了.错误提示: Initialization Error PowerShell is required to use the Deployment Workbench. Please install

【转】构建需求响应式亿级商品详情页

商品详情页是什么 商品详情页是展示商品详细信息的一个页面,承载在网站的大部分流量和订单的入口.京东商城目前有通用版.全球购.闪购.易车.惠买车.服装.拼购.今日抄底等许多套模板.各套模板的元数据是一样的,只是展示方式不一样.目前商品详情页个性化需求非常多,数据来源也是非常多的,而且许多基础服务做不了的都放我们这,因此我们需要一种架构能快速响应和优雅的解决这些需求问题.因此我们重新设计了商品详情页的架构,主要包括三部分:商品详情页系统.商品详情页统一服务系统和商品详情页动态服务系统:商品详情页系统

10月28日晚阿里云ECS/SLB升级公告

尊敬的阿里云用户: 您好,为了更好的优化后端系统,阿里云ECS/SLB将于10月28日晚至10月29日凌晨进行系统升级,升级详情如下: 一.ECS将于10月28日23:00-10月29日3:00进行系统升级,升级期间影响如下: 1)阿里云官网停止售卖云服务器,无法在官网上购买和升级续费云服务器. 2)您无法在ECS控制台和通过ECS API对云服务器做任何操作,包括:创建.释放.启动.停止.重启.重新初始化磁盘,创建快照.回滚快照,重置,创建自定义镜像等,升级期间不影响云服务器正常运行.调用EC

网络“投毒”系列报告:全国多省软件升级劫持攻击事件数据分析

本文讲的是网络"投毒"系列报告:全国多省软件升级劫持攻击事件数据分析, 概述 初步披露了基于域名bjftzt.cdn.powercdn.com的一组大规模软件升级劫持事件.在这个事件的第一阶段中,用户尝试升级若干知名软件客户端时,HTTP URL会被劫持,实际下载得到的是"加料"的恶意软件.在第二阶段中,恶意软件会在表面上正常安装知名软件客户端的同时,另外在后台偷偷下载安装推广其他软件. 基于网络层面的监测计算,此次软件升级劫持的影响范围远超WannaCry勒索蠕虫