HHVM 3.1.0& PGSQL

时间:2014-07-08 01:20:33

标签: postgresql hhvm

我在使用NGINX在Ubuntu Trusty 14.04(LTS)上使用HHVM 3.1.0工作PGSQL扩展时遇到问题。

#hhvm --version
HipHop VM 3.1.0 (rel)
Compiler: tags/HHVM-3.1.0-0-g71ecbd8fb5e94b2a008387a2b5e9a8df5c6f5c7b
Repo schema: 88ae0db264d72ec2e2eb22ab25d717214aee568b

按照此处的说明,https://github.com/PocketRent/hhvm-pgsql我编辑我的/etc/hhvm/php.ini文件,并添加以下内容:

DynamicExtensionPath = /data/config/etc/hhvm/extensions/
DynamicExtensions {
    * = pgsql.so
}

但是在启动HHVM时遇到错误:

 # service hhvm restart
 * Restarting HHVM FastCGI Daemon hhvm
 syntax error, unexpected JUNK, expecting $end or TC_SECTION or TC_LABEL or END_OF_LINE in /etc/hhvm/php.ini on line 13\n
 syntax error, unexpected JUNK, expecting $end or TC_SECTION or TC_LABEL or END_OF_LINE in /etc/hhvm/php.ini on line 13\n

我的php.ini看起来像这样

; php options

; hhvm specific
hhvm.log.level = Warning
hhvm.log.always_log_unhandled_exceptions = true
hhvm.log.runtime_error_reporting_level = 8191
hhvm.mysql.typed_results = false


; hhvm.dynamicextensions.pgsql = /data/config/etc/hhvm/extensions/pgsql.so

DynamicExtensionPath = /data/config/etc/hhvm/extensions/
DynamicExtensions {
    * = pgsql.so
}

你可以看到我也根据我从hdf转移到ini文件的信息尝试了以下内容:

hhvm.dynamic_extensions.pgsql = /data/config/etc/hhvm/extensions/pgsql.so

在启动时不会抛出任何错误,但在运行PHP代码时不会呈现错误

if (extension_loaded('pgsql')) {

pgsql.so来自预先构建的二进制文件https://github.com/PocketRent/hhvm-pgsql/tree/releases/3.1.0/ubuntu/trusty,以确保它与我正在使用的Ubunntu / HHVM版本匹配。

有人可以在这里帮忙告诉我发生了什么事吗?

谢谢!

2 个答案:

答案 0 :(得分:6)

您目前无法使用INI格式(hhvm.dynamic_extensions.pgsqlextension)将扩展程序加载到HHVM中。你必须使用Hdf格式。

执行此操作以使其在Web和CLI中都能正常运行的最简单方法是创建/etc/hhvm/config.hdf并添加:

DynamicExtensionPath = /data/config/etc/hhvm/extensions
DynamicExtensions {
    * = pgsql.so
}

然后,修改/etc/default/hhvm并取消注释ADDITIONAL_ARGS行并将其更改为ADDITIONAL_ARGS="-c /etc/hhvm/config.hdf"。重新启动HHVM然后应该接收它。

CLI会自动尝试加载此文件,因此您不需要在此处执行任何操作(除非您通过-c选项,否则您需要也传递config.hdf文件

答案 1 :(得分:2)

根据更新的文档(https://github.com/PocketRent/hhvm-pgsql),您可以在最新版本的hhvm中向hhvm的PHP.INI添加几行。

hhvm.dynamic_extension_path = /path/to/hhvm/extensions
hhvm.dynamic_extensions[pgsql] = pgsql.so