首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HHVM 3.7.0 Postgresql

HHVM 3.7.0 Postgresql
EN

Stack Overflow用户
提问于 2015-04-05 07:20:19
回答 1查看 1.4K关注 0票数 0

我知道HHVM不支持Postgres,但是hiphop有允许使用postgres的扩展。

我已经成功地编译了hhvm,并使用以下命令安装了hhvm

代码语言:javascript
复制
[root@localhost ~]# git clone https://github.com/facebook/hhvm -b master  hhvm  --recursive
[root@localhost ~]# cd hhvm
[root@localhost hhvm]# ./configure
[root@localhost hhvm]# make -j5
[root@localhost hhvm]# make install

这很好,我已经开发了连接到postgres数据库的需求。

尝试1

下面的页面建议在配置时添加--with-pdo-pgsql=/path/to/pg_config参数。http://docs.hhvm.com/manual/en/ref.pdo-pgsql.php

代码语言:javascript
复制
[root@localhost hhvm]# find / -name pg_config
/usr/bin/pg_config
[root@localhost hhvm]# ./configure --with-pdo-pgsql=/usr/bin/pg_config
[root@localhost hhvm]# make -j5
[root@localhost hhvm]# make install

也没有看到任何改善

代码语言:javascript
复制
[root@localhost hhvm]# hhvm ~/test.php
Fatal error: Call to undefined function pg_connect() in /root/test.php on line 2

尝试2

hhvm扩展页面(https://github.com/facebook/hhvm/wiki/Extensions)链接到https://github.com/PocketRent/hhvm-pgsql

我按照步骤创建hhvm扩展。

代码语言:javascript
复制
[root@localhost ~]# git clone https://github.com/PocketRent/hhvm-pgsql.git
[root@localhost ~]# cd hhvm-pgsql
[root@localhost hhvm-pgsql]# hphpize
[root@localhost hhvm-pgsql]# cmake .
[root@localhost hhvm-pgsql]# make
[ 25%] Building CXX object CMakeFiles/pgsql.dir/pgsql.cpp.o
In file included from /root/hhvm-pgsql/pgsql.cpp:2:0:
/root/hhvm-pgsql/pgsql.h:6:45: fatal error: hphp/runtime/base/base-includes.h: No such file or directory
 #include "hphp/runtime/base/base-includes.h"
                                             ^
compilation terminated.
make[2]: *** [CMakeFiles/pgsql.dir/pgsql.cpp.o] Error 1
make[1]: *** [CMakeFiles/pgsql.dir/all] Error 2
make: *** [all] Error 2

显然我错过了基地-包括。我不知道从哪里弄来的。我假设它在回购提到的hhvm-dev包中,但是我应该在哪里得到必要的文件,就像我刚刚编译了hhvm一样?

代码语言:javascript
复制
[root@localhost hhvm]# find / -name base-includes.h

什么都没找到。

附加信息

代码语言:javascript
复制
[root@localhost hhvm]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
[root@localhost hhvm]# hhvm --version
HipHop VM 3.7.0-dev (rel)
Compiler: heads/master-0-g6bec157aad74985e64d3d9fe928ad5cc490f5876
Repo schema: e36ae4255d99eb78d62256c73ee53fadb05d65e0

我还遵循了https://github.com/facebook/hhvm/wiki/Prebuilt-Packages-on-Centos-7.x上的步骤来通过yum安装它。我发现这是可行的,但是hhvm版本有一些bug已经修复了。在编写这篇文章时,我尝试从pgsql.so中提取安装的yum install hhvm-ext-pgsql,这导致了下面的错误。(可以理解)。

代码语言:javascript
复制
[root@localhost ~]# hhvm test.php
Uncaught exception: Could not load extension /usr/local/lib64/hhvm/extensions/pgsql.so: getModuleBuildInfo() symbol not defined. (/usr/local/lib64/hhvm/extensions/pgsql.so: undefined symbol: getModuleBuildInfo)
Core dumped: Segmentation fault
Stack trace in /tmp/stacktrace.4181.log
Segmentation fault

,我的问题是.

我在第一次尝试中做错了什么?

怎样才能成功地完成第二次尝试?

  • 这是假定的知识吗?
  • 在未来,我怎样才能解决这个问题而不必在这里提出一个问题,记住我已经尝试过常规的研究和谷歌,却没有发现任何有价值的东西。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-06 03:17:44

尝试1只是无法工作,文档是错误的,我提出了一个问题

尝试2,即PocketRent扩展,是正确的方向,尽管扩展最近可能没有被更新。您应该报告编译失败的关于他们的问题追踪器 (或者搜索跟踪器中存在的问题,尽管没有人会跳出来)。构建它的人很好,尽管他们有时会忘记在HHVM更改时更新扩展,直到有人提醒他们:)

在这里,我不会使用预构建的扩展;扩展需要构建在它们运行的HHVM的版本上。我怀疑,您所看到的崩溃是由于将由一个版本的HHVM构建的扩展与在另一个版本上运行它相混合造成的。(这应该会产生一个有用的错误,但最近出现了一个错误,我们无法检测到这一点,反而会崩溃!)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29455059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档