无法加载HHVM扩展(动态)

时间:2014-05-26 10:33:44

标签: php c++ facebook hhvm

我正在为HHVM编写C ++扩展(动态加载)。我按照此页面上的说明操作: https://github.com/facebook/hhvm/wiki/Extension-API

链接到以下示例: https://github.com/hhvm/extension-example

我在Ubuntu 14.04上编译了hhvm,耗时近2个小时。然后我还编译了示例扩展。

我的问题是,如何加载它?

互联网上的信息似乎已过时或不一致。 无论如何,我首先尝试使用以下行创建/etc/hhvm/config.hdf:

DynamicExtensions {
  example = /path/to/example.so
}

什么都没发生。然后我看到了这个: 来自:http://hhvm.com/blog/4349/hhvm-3-0-0

  

我们正在从.hdf配置文件迁移到.ini。默认的一个存在   /etc/hhvm/php.ini。我们还不支持所有旧选项,所以你   现在仍然可以使用config.hdf,但要准备好让它死掉   下一个版本。所有你最喜欢的选项都来自Foo {BarBaz =   真实}到hhvm.foo.bar_baz = true。

好的,然后我尝试将行放在/etc/hhvm/php.ini或/etc/hhvm/server.ini而不是.hdf

hhvm.dynamic_extensions.example = /path/to/example.so

但没有运气,没有任何效果。我需要更多信息/文档。

那么,有没有人知道会发生什么?或者如果Facebook的HHVM团队看到这篇文章,你能帮帮我吗?

1 个答案:

答案 0 :(得分:7)

我发现您已设法加载它,所以我只关注无法找到该功能。

HHVM 3.0发布后不久,扩展加载PHP文件的方式发生了变化。基本上,文件名的前四个字符在嵌入时会被剥离,因为它应该是ext_name.php。直到昨晚,示例扩展才更新此更改。

变化相当简单。只需将example.php重命名为ext_example.php,然后在config.cmakeHHVM_SYSTEMLIB(example example.php)更改为HHVM_SYSTEMLIB(example ext_example.php),然后重新运行cmake . && make

您可以看到已提交的更改(确实如此)here