嗯,我发现了很多关于 ISE 500 的话题,但没有一个解决方案适合我。
我为我们的客户开发了一个 facebook 应用程序来展示一些音轨,当然,我想根据 app_data 参数将一些参数传递给应用程序。所以我集成了 facebook sdk 3.1.1。 尽一切努力正确连接到 facebook。
在我本地的 xampp 上一切正常,我们公司的网络服务器也可以毫无问题地运行该应用程序,我的私有(private)网站空间也是如此。但是当我将应用程序上传到客户端服务器时,我收到 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 说“没有值(value)”
- 尝试了 ini_set("display_errors", true);
错误跟踪...没有效果
更新 2
因此,在逐行检查 facebook 文件后,我能够确定问题所在。尝试启动 session 后立即抛出内部服务器错误 500:
if(!session_id())
{
session_start();
}
我将此信息转发给了服务器管理员和客户端...我想现在已经不在我手上了,我会在得到答复后更新这篇文章。感谢您的反馈家伙 :)
解决方案
好的,服务器管理员现在确定了问题所在。 session.save_handler 被设置为'user',他将其更改为'files',现在一切正常。:
session.save_handler = files
再次感谢您的帮助!
最佳答案
尝试将此添加到脚本的顶部,在包含之前:
ini_set("display_errors", true);
关于php - 内部服务器错误 500 - session_start(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9437275/