【问题标题】:PHP crashes during oAuth scriptsPHP 在 oAuth 脚本期间崩溃
【发布时间】:2012-10-29 11:58:15
【问题描述】:

我刚刚安装了 Nginx 1.2.4 和 PHP 5.4.0(来自 svn)(php fpm)。 CentOs 5.8 64

我遇到的问题是,当我运行任何社交 oAuth 脚本时,PHP 就会崩溃。我尝试使用我知道在我的其他服务器上工作的各种脚本登录 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 崩溃。

我发现:Nginx + PHP-FPM 502 Bad Gateway 这似乎是一个类似的问题,但我找不到解决方法。

* ++++ 更新 ++++ *

现在我一直在对正在播放的 1 个脚本进行一些调试。

如果您转到第 808 行 http://pastebin.com/gSnzRtXb,它将运行 curl_exec() 命令。

当它运行时,它会崩溃。如果我回显“测试”;退出;就在那条线上,它 回声是正确的,如果我在该行下方执行此操作,则 php 崩溃。

这意味着导致崩溃的是第 808 行。

所以我做了一个非常简单的脚本来做一些测试:http://pastebin.com/Rshnyhcm 它也使用 curl_exec,但运行得很好。

所以我开始从 facebook 脚本中更深入地研究该查询,看看有什么 $opts 数组包含的值来自第 806 行。

该数组的输出是:http://pastebin.com/Cq9ffd3R

问题是什么,我还是没有头绪:(

【问题讨论】:

  • 在您的测试中,您只是发出 HTTP 请求,但对 FB 服务器的请求是通过 HTTPS 发出的。也许这就是问题所在,没有为 HTTPS 正确配置 cURL,防火墙阻止了传出请求等。
  • 好主意!我将我的测试脚本:pastebin.com/Rshnyhcm 更改为 https 连接,确实它崩溃了。使用http它工作得很好。我使用 iptables,但允许所有传出连接。还有什么我可以检查导致此 https cURL 问题的原因吗?

标签: facebook oauth nginx php


【解决方案1】:

通过将 PHP 更新到 5.3.8 解决了这个问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    相关资源
    最近更新 更多