如何追踪500内部服务器错误的原因?

时间:2012-01-16 19:43:44

标签: facebook facebook-graph-api

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

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

不幸的是,服务器(不是facebook!)返回500错误。

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

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

2 个答案:

答案 0 :(得分:5)

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错误。

答案 1 :(得分:0)

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

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

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