Ответ 1
Вы не указали много подробностей о вашей настройке, поэтому неясно, установлен ли драйвер Postgres. Postgres не поддерживается прямо из коробки. Вы должны сами создать и/или установить его.
В Facebook есть "официальный" список расширений HHVM. PGSQL еще не интегрирован в HHVM, но страница Facebook указывает на внешний проект GitHub, который находится здесь:
Ниже приведено краткое описание инструкций проекта; вы можете прочитать их самостоятельно в файлах README.md
.
Сборка из источника
Если вы хотите создать его из исходного кода, вам понадобятся пакеты hhvm-dev и libpq-dev. После того, как они будут установлены, следующие команды будут строить расширение:
$ cd /path/to/source
$ hphpize
$ cmake .
$ make
Это приведет к созданию файла pgsql.so, динамически загружаемого расширения. Скопируйте этот файл в /etc/hhvm/pgsql.so
.
Предварительно созданные двоичные файлы
Если вы не хотите его создавать, для отдельных популярных дистрибутивов в отдельной ветке релизов есть готовые двоичные версии: Releases.
Снова скопируйте загруженный файл pgsql.so в /etc/hhvm/pgsql.so
.
Конфигурация
Если вы создаете исходный код или устанавливаете двоичные файлы, вам нужно сообщить HHVM, где его найти. Измените файл конфигурации (обычно /etc/hhvm/php.ini
) и добавьте их, если они отсутствуют:
extension_dir = /etc/hhvm
hhvm.extensions[pgsql] = pgsql.so
Вы можете проверить, что все работает, запустив
hhvm --php -r 'var_dump(function_exists("pg_connect"));'
Если все работает нормально, это выведет bool(true)
.
Вам может потребоваться перезапустить HHVM, чтобы сервер забирал расширение.