【问题标题】:Laravel 5 + Homestead + HHVM + PGSQL = Driver not foundLaravel 5 + Homestead + HHVM + PGSQL = 找不到驱动程序
【发布时间】:2015-09-06 14:22:51
【问题描述】:

我的 PHP 项目使用 PGSQL。它在我的开发机器上从 Homestead 成功运行。一旦我在 homestead.yaml 中将hhvm: true 添加到我的项目中,并提供 - 我的网络应用程序抛出一个 PDOException 并找不到驱动程序。当我删除 hhvm:true 并重新配置宅基地时,异常消失了。

显然 HHVM 的配置不包括 PGSQL 驱动程序。

我该如何纠正?

【问题讨论】:

  • 这可能应该作为 Laravel 的 GitHub 问题发送,因为它确实应该被捆绑...

标签: laravel homestead


【解决方案1】:

您没有提供很多有关设置的详细信息,因此不清楚您是否安装了 Postgres 驱动程序。开箱即用不支持 Postgres。您必须自己构建和/或安装它。

Facebook 有一个"official" list of HHVM extensions。 PGSQL 尚未(尚未)集成到 HHVM 中,但 Facebook 的页面指向外部 GitHub 项目,该项目位于此处:

Postgres Extension for HHVM

以下是项目说明的摘要;您可以在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 才能让服务器获取扩展。

【讨论】:

    猜你喜欢
    • 2015-04-08
    • 2016-05-16
    • 1970-01-01
    • 2012-09-05
    • 2018-10-11
    • 2013-11-19
    相关资源
    最近更新 更多