Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php can';t加载HHVM扩展(动态) 我正在写一个HVHM的C++扩展(动态加载)。我按照本页上的说明进行操作: _Php_C++_Facebook_Hhvm - Fatal编程技术网

Php can';t加载HHVM扩展(动态) 我正在写一个HVHM的C++扩展(动态加载)。我按照本页上的说明进行操作:

Php can';t加载HHVM扩展(动态) 我正在写一个HVHM的C++扩展(动态加载)。我按照本页上的说明进行操作: ,php,c++,facebook,hhvm,Php,C++,Facebook,Hhvm,链接到中的示例: 我在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配置文件移动到.i

链接到中的示例:

我在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= True}到hhvm.foo.bar_baz=True

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

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

但如果运气不好,一切都不起作用。我需要更多的信息/文档


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

我看到你已经设法加载了它,所以我将重点放在找不到函数上

HHVM3.0发布后不久,从扩展加载PHP文件的方式发生了变化。基本上,文件名的前四个字符在嵌入文件时会被去掉,因为它应该是
ext\u name.php
。直到昨晚,示例扩展才针对此更改进行了更新

变化相当简单。只需将
example.php
重命名为
ext\u example.php
,并在
config.cmake
中将
HHVM\u SYSTEMLIB(example example.php)
更改为
HHVM\u SYSTEMLIB(example ext\u example.php)
然后重新运行
cmake.&制作


您可以看到提交的更改(正是这样做的)

Update:我可以加载模块,但找不到示例_sum()函数。致命错误:第7行调用/home/ubuntu/example/test.php中未定义的函数example_sum(),为什么编译hhvm?您是否在运行hhvm或已成功安装hhvm时遇到问题?是否在加载扩展时遇到问题?(很抱歉,我不理解您的问题)@ThemisBeris您当前需要自己编译HHVM才能获得
hphpize
以及必要的头文件和cmake文件。是的,我必须编译HHVM,因为当我试图运行hphpize时(未找到cmd…oops)事实上,我在AWS上这样做的成本是每小时0.132美元。你可以安装
hhvm dev
,如果你不想编译它,它将允许你运行HPIZ。事实上,我还没有完全解决我的问题。你说我成功地加载了它,是和否。是的,当我运行hhvm-c config.hdf test.php时,但是我的FastCGI安装程序没有加载扩展,并且/etc/hhvm/config.hdf不存在,所以我创建了一个,仍然没有工作。所以我猜hhvm团队把配置文件改成了/etc/hhvm/server.ini?我在extension.cpp中阅读了代码,hhvm似乎仍然读取.hdf config,但它在哪里?@KenjiChan您可以将多个配置文件传递给hhvm。如果编辑
/etc/default/hhvm
文件,则可以将
附加参数设置为
-c/etc/hhvm/config.hdf
,然后在(真)打印时将其与
/etc/hhvm/server.ini
一起使用(“谢谢!\n”);更新:我发现我安装了两个版本(3.0.1、3.2.0 dev)的hhvm,我必须修复我的启动脚本以使用更新的版本。因此,我尝试使用“apt get remove hvm”卸载,但它也删除了启动脚本,这似乎是正确的。现在,我必须自己创建/复制脚本,还是在源文件夹中执行类似“sudo make install\u startup\u script”的操作?一个简单的
make install
就可以做到,否则所有脚本都可以在存储库中使用,init.d脚本也可以使用。