繁体   English   中英

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

[英]How to configure Heroku's Facebook tutorial app to run locally with PHP?

我正在尝试运行Heroku的基本教程facebook应用程序( http://devcenter.heroku.com/articles/facebook )。 按照说明进行操作,在Heroku上进行部署就可以了。 尝试在本地部署时出现以下错误

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

我知道getHome函数存在一些问题,在这里找到了与python类似问题的答案-使用Python 运行Heroku的Facebook应用程序教程时出现问题 ,但我仍然无法弄清楚应该如何为PHP完成。

我试图将getHome函数更改为仅return http://127.0.0.1:5000/ (例如我在我的facebook应用程序上设置的站点URL),但是随后我发现浏览器无法连接到它。

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

提前致谢。

看您的评论,您在这里所做的事情是错误的。 它应该是

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

该应用程序依靠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'] . "/";

这篇文章有更多关于PHP或equals和Alternatives的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM