【问题标题】:How to trace the cause of a 500 internal server error?如何追踪 500 内部服务器错误的原因?
【发布时间】:2015-11-18 22:54:29
【问题描述】:

我正在尝试使用 FB 的官方 PHP SDK 执行以下操作:

$facebook->api(
'/me/feed',
'POST',
array(
    'link' => 'test',
    'message' => 'test'
)

)

很遗憾,服务器(不是 facebook!)返回 500 错误。

请求通过,状态被发布,但我的服务器返回错误。

我的问题是,我该如何找出它的原因?

【问题讨论】:

  • 检查你的服务器错误日志。(如果你有appache它有错误日志)

标签: facebook facebook-graph-api


【解决方案1】:

500 一般是“内部服务器错误”。

如果您从您的 facebook api 调用中获得 500 回,那么这可能是他们的问题。

然后,您的 HTTP 请求可能有点偏离,fb 服务器会“嗯,什么?”并向您发送 500,因为它无法解释问题。

我记得几年前,当出现问题时,fb api 主要返回“未知错误”代码 - 从那以后就没有接触过那个 api。希望您没有遇到同样的问题。

要真正解决问题,您需要:

A) 捕获您的 HTTP 请求和响应,包括标头,将其与成功的 api 调用进行比较,并在需要时进行更改。 B) 捕获 facebook SDK 抛出的任何异常。

选项 A 将始终有效,但选项 B 可能更快。

查看: php exceptions

编辑: 要查看您的服务器上导致 500 错误的原因,请查看您的 apache 错误日志。

你也可以使用

error_reporting(E_ALL);

排除任何php错误。

【讨论】:

  • 我可能没有正确解释自己:服务器返回 500 代码,而不是 Facebook。我假设如果它是 facebook,那么请求就会失败,我的服务器不会返回 500 错误。状态贴出来了,FB端好像没有问题。
  • 在这种情况下,您的 apache 错误日志应该会告诉您问题所在。
【解决方案2】:

在我的情况下,我将应用程序从一台服务器移动到另一台服务器,缺少 CURL 是错误 :)

在管理模式下 ssh 我可以看到以下行>

PHP 致命错误:未捕获的异常 'Exception' 带有消息“Facebook 需要 CURL PHP 扩展。”在 /srv/www/smixe.com/base_facebook.php:19

【讨论】:

    猜你喜欢
    • 2018-01-16
    • 2011-11-26
    • 2021-09-06
    • 2015-10-20
    • 2019-01-17
    • 2011-10-17
    • 2010-11-15
    • 1970-01-01
    相关资源
    最近更新 更多