Я действительно понимаю, что HHVM не поддерживает Postgres, но есть расширения для hiphop, которые позволяют использовать Postgres PDO.HHVM 3.7.0 Postgresql PDO
Я успешно скомпилирован hhvm и установил hhvm со следующими командами
[[email protected] ~]# git clone https://github.com/facebook/hhvm -b master hhvm --recursive
[[email protected] ~]# cd hhvm
[[email protected] hhvm]# ./configure
[[email protected] hhvm]# make -j5
[[email protected] hhvm]# make install
Это работало отлично, и я с тех пор разработали необходимость подключения к базе данных Postgres.
Покушение 1
Следующая страница предлагает добавить --with-pdo-pgsql=/path/to/pg_config
аргумент при настройке. http://docs.hhvm.com/manual/en/ref.pdo-pgsql.php
[[email protected] hhvm]# find/-name pg_config
/usr/bin/pg_config
[[email protected] hhvm]# ./configure --with-pdo-pgsql=/usr/bin/pg_config
[[email protected] hhvm]# make -j5
[[email protected] hhvm]# make install
и не видели каких-либо улучшений
[[email protected] 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-pgsql.
[[email protected] ~]# git clone https://github.com/PocketRent/hhvm-pgsql.git
[[email protected] ~]# cd hhvm-pgsql
[[email protected] hhvm-pgsql]# hphpize
[[email protected] hhvm-pgsql]# cmake .
[[email protected] 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
Очевидно, что я отсутствует base-includes.h. Я не уверен, где его получить. Im полагает, что в пакете hhvm-dev упоминается репо, но где я должен получить необходимые файлы, видя, как будто я только что скомпилировал hhvm?
[[email protected] hhvm]# find/-name base-includes.h
ничего не находит.
Дополнительная информация
[[email protected] hhvm]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
[[email protected] 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 установить все это с помощью ням. Я нашел, что работает, но эта версия hhvm имеет некоторые ошибки, которые с тех пор были исправлены. Как я писал это, я попытался потянуть pgsql.so
, установленный с yum install hhvm-ext-pgsql
, в результате чего появилась ошибка ниже. (По понятным причинам).
[[email protected] ~]# 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
В любом случае, мой вопрос ...
Что я делаю неправильно/отсутствует в Покушение 1?
Как я могу успешно выполнить попытку 2?
- Предполагается ли знание?
- Как я могу справиться с этим в будущем, не задавая здесь вопроса, имея в виду, что я попытался провести обычное исследование и Google и не нашел ничего полезного.
Спасибо, что зарегистрировали проблему. Послушайте, что вы сказали о попытке 2, и отметьте как ответьте, когда я говорю с ними. Что касается заранее подготовленного, я только упомянул об этом в вопросе, поэтому другие не предлагали. Я не думал, что это сработает. Трассировка стека в любом случае создавала то, что выглядит полезной. – Matt