2

好吧,我发现ISE 500有很多线程,但没有一个解决方案对我有用。

我为我们的客户开发了一个 facebook 应用程序来呈现一些音轨,当然,我希望通过 app_data 参数将一些参数传递给应用程序。所以我集成了facebook sdk 3.1.1。尽一切努力正确连接到 Facebook。

在我的本地 xampp 上一切正常,我们公司的网络服务器也可以毫无问题地运行该应用程序,我的私人网络空间也是如此。但是当我将应用程序上传到客户端服务器时,我得到一个 500:内部服务器错误。为了排除我这边任何奇怪的脚本错误,我尝试执行 sdk 附带的 example.php。同样的错误。即使我只是尝试像这样实例化 Facebook 类:

<?php

require '../src/facebook.php';

$facebook = new Facebook(array(
  'appId'  => '???',
  'secret' => '??????',
));
?>

我已经查看了服务器错误日志。它唯一提到的是:

“脚本头过早结束:example.php”

我还使用了广泛建议error_reporting(E_ALL);的方法来避免服务器端的错误错误处理。没有。服务器只是不会告诉我出了什么问题。

我发现了很多其他人收到此错误的原因,最突出的原因是:

  • ?>facebook.php / base_facebook.php 中缺少标签
  • Facebook- 和的多个实例FacebookApiException

...提供的解决方案都不适合我。

所以我尝试比较客户端和我们公司服务器的phpinfos。当然有一些差异,但对我来说没有什么明显的。我在论坛上寻找人们已经与 ISE 500 相关联的基本内容,例如cURL 扩展php 版本 (5.3.9)。我不是服务器管理员,我只对服务器配置有非常基本的了解。因此,为了确保缺少某些东西,我尝试查找 facebook sdk 的服务器要求...

...但整个网络不会告诉我 facebook sdk 的服务器要求。甚至 facebook 文档也没有提及任何内容。所以我希望这里可能有人可以帮助我解决这个问题。

是的...我已经向服务器管理员寻求帮助,他只是用两个问号看着我...是的...我必须使用客户端服务器:(叹息

感谢你在期待...


更新:
我将列出我尝试响应您的建议的事情:

服务器:
- 已安装 cURL 扩展 (7.20.1)
- php 版本为 5.3.9。
- 试图包含其他文件,工作正常。似乎不是路径问题
- 服务器错误日志只显示“脚本头过早结束:example.php”
- log_errors 已启用。error_log 说“没有价值”
- 尝试ini_set("display_errors", true);进行错误跟踪...没有效果


更新 2

因此,我能够在逐行检查 facebook 文件后找出问题所在。内部服务器错误 500 在尝试启动会话后立即抛出:

if(!session_id())
{
    session_start();
}

我将此信息转发给服务器管理员和客户端......我想它现在不在我的手中,当我得到答案时我会更新这篇文章。感谢您的反馈家伙:)


解决方案

好的,服务器管理员现在发现了问题。session.save_handler 设置为“用户”,他将其更改为“文件”,现在一切正常。:

session.save_handler = files

再次感谢您的帮助!

4

3 回答 3

6

尝试在你的脚本顶部添加这个,在你包含之前:

ini_set("display_errors", true);
于 2012-02-25T10:23:25.393 回答
0

这是一个非常糟糕的问题的完美例子。

虽然你唯一的问题是how to get an error message from PHP,你写了一本关于没人需要知道的事情的整本小说。如果您运行 facebook 应用程序或其他任何东西都没有关系。您安装的 curl 版本无关紧要。

您唯一需要的是 PHP 错误消息。
你必须追踪它。检查error_reporting,error_loglog_errorsphpinfo() 中的指令。
检查用户的主目录以获取其他日志文件。向服务器管理员询问日志文件。这必须是您搜索的唯一方向 - PHP 错误消息。

于 2012-02-25T10:15:57.717 回答
0

phpinfo() 有答案。在会话下,必须从以下位置设置 save_handler 参数:

session.save_handler = user

到:

session.save_handler = files

于 2012-02-27T10:47:53.980 回答