HipHop for PHP,部署应用程序

时间:2014-02-04 11:24:48

标签: hhvm

谷歌搜索后,我发现了很多HipHop文档,但2011年至2013年间发布了大量文档。

今年早些时候推出了新版本的HipHop,甚至支持Drupal并包含了很多改进......

我一直使用Zend Guard来部署我的商业应用程序,但现在我开始认真考虑在生产中使用HipHop,但问题出现了:

  • 我们只使用字节码HHBC(没有.php源代码)运行应用程序?

遵循我的研究参考 https://github.com/facebook/hhvm/wiki/FAQ

这个问题似乎非常明显,但在项目文档中找到这个答案并不容易。

提前致谢!

1 个答案:

答案 0 :(得分:3)

嗯,是的,没有。

HHVM有一种所谓的RepoAuthoritative模式,在这种模式下,HHVM将不再检查PHP文件是否存在或者它们是最新的。相反,它将直接从其缓存中检索HHBC。

理论上,您可以按照以下步骤操作:

  • 为所有PHP文件预生成HHBC,并将HHBC插入HHVM的缓存中。这就是所谓的预分析阶段(如果你在HHVM文档中看到它,这就是它们的含义)。
  • 启用RepoAuthoritative模式(它在HHVM的配置中仅为1行)
  • 删除您的PHP代码

这样您的PHP应用程序就可以正常运行而不会出现源代码。由于HHVM的字节码缓存存在于磁盘上(它作为SQLite数据库实现),因此重新启动服务器不会改变这一点。

但是,如果你这样做会很头疼:

  • 想要更改代码中的内容。您必须复制代码,进行更改并重复预分析阶段。
  • 想要将HHVM升级到更新版本。 HHVM使用其构建ID作为缓存密钥的一部分,因此,如果升级它,字节码缓存将变得无法访问,并且由于您将以RepoAuthoritative模式运行,因此您的应用程序将减少为一堆HTTP 404错误。要解决这个问题,您还必须重复预分析阶段。

底线:没有上行空间,下跌空间很大。这样做没有意义。

PS:我希望我回答你的问题。我也可能误解了你的要求;如果是这样,请在评论中告诉我。