如何配置Heroku的Facebook教程应用程序在本地运行PHP?

时间:2011-10-17 09:15:22

标签: php facebook heroku

我正在尝试运行Heroku的基本教程facebook应用程序(http://devcenter.heroku.com/articles/facebook)。 按照说明,在Heroku上部署很顺利。 尝试在本地部署我收到以下错误

  

解析错误:语法错误,第36行的C:\ Program Files \ Apache Software Foundation \ Apache2.2 \ htdocs \ AppInfo.php中的意外':'。

我知道getHome函数存在一些问题,在这里找到了python类似问题的答案 - Problem running Heroku's Facebook app tutorial with Python,但我仍然无法弄清楚应该如何为PHP做。

我尝试将getHome函数更改为return http://127.0.0.1:5000/(就像我在facebook应用上设置的网站网址一样),但后来我发现浏览器无法连接到它。

我在本地运行Safari 2.2,基本的Hello world PHP文件运行正常。

提前致谢。

2 个答案:

答案 0 :(得分:0)

看看你的评论,你做错了。它应该是

return ($_SERVER['HTTP_X_FORWARDED_PROTO']) ?: "http:" . "://" . $_SERVER['HTTP_HOST'] . "/";

答案 1 :(得分:0)

该应用程序依赖于PHP 5.3运算符在该行上执行“或等于”。它的工作原理如下:

$foo ?: "bar";

这意味着:如果设置则假定$ foo的值,否则为“bar”。为了与早期版本的PHP兼容,您必须使用不同的运算符和函数重写它。像:

isset($foo) ? $foo : "bar";

回到应用程序,你可以用以下方法修复它:

$protocol = isset($_SERVER['HTTP_X_FORWARDED_PROTO']) ? $_SERVER['HTTP_X_FORWARDED_PROTO'] : "http";
return $protocol . "://" . $_SERVER['HTTP_HOST'] . "/";

This post提供有关PHP或等号和替代品的更多信息。