我刚刚安装了 Nginx 1.2.4 和 PHP 5.4.0(来自 svn)(php fpm)。CentOs 5.8 64
我遇到的问题是 PHP 在我运行任何社交 oAuth 脚本时崩溃。我尝试使用我知道可以在我的其他服务器上运行的各种脚本登录 Facebook、Twitter 和 Google。当我加载脚本时,我从 Nginx 收到 502 错误。我在日志中发现了这些错误:
在 php-fpm 日志中:
WARNING: [pool www] child 23821 exited on signal 11 (SIGSEGV) after 1132.862984 seconds from start
在 nginx 日志中:
ERROR: recv() failed (104: Connection reset by peer) while reading response header from upstream
据我所知,当 PHP 尝试向任何 oAuth 服务器发出请求时,它出错了。
https://github.com/mahmudahsan/PHP-SDK-3.0---Graph-API-base-Facebook-Connect-Tutorial-Source例如是在我的其他机器上完美运行的脚本之一,但会导致 PHP碰撞。
我发现:https ://stackoverflow.com/questions/3616191/nginx-php-fpm-502-bad-gateway这似乎是一个类似的问题,但我找不到解决它的方法。
+++更新+++
现在我一直在对正在播放的脚本之一进行调试。
如果您转到第 808 行http://pastebin.com/gSnzRtXb,它会运行 curl_exec() 命令。
当它运行时,它崩溃了。如果我回显“测试”;退出;就在该行之上,它正确地回显,如果我在该行之下执行它,php 就会崩溃。
这意味着导致崩溃的是第 808 行。
所以我做了一个非常简单的脚本来做一些测试:http : //pastebin.com/Rshnyhcm,它也使用 curl_exec,但运行得很好。
所以我开始深入研究 facebook 脚本中的查询,以查看 $opts 数组包含第 806 行的哪些值。
该数组的输出是: http: //pastebin.com/Cq9ffd3R
问题是什么,我仍然不知道:(
通过升级到 PHP 5.4.8 解决了