【问题标题】:Heroku local: how to install support for PostgresHeroku local:如何安装对 Postgres 的支持
【发布时间】:2016-10-27 06:33:52
【问题描述】:

我正在使用 heroku local 在本地尝试在 PHP 中进行开发,然后再推送到 heroku。

但是,由于缺少 PDO 驱动程序,我无法在本地使用 Postgres:

  • 收到'PDOException' with message 'could not find driver' 错误消息
  • 而且,事实上,phpinfo() 表明 pdo_pgsql 未安装。

如何在heroku local 上安装(或启用?)PostgreSQL PDO (pdo_pgsql)?

我在官方文档和网上都找不到任何东西。 (文档似乎缺少 PHP,尤其是关于如何在本地使用 heroku。)

仅供参考,运行 Mac OS X。


如果需要,这是我正在使用的用于测试目的的最小示例:

/**
 * postgres-helloworld.php
 * Runs fine on XAMPP, which has PHP Version 5.5.15 with pdo_pgsql installed.
 * But won't run on heroku local, which has PHP Version 5.5.34 WITHOUT pdo_pgsql installed.
 *  `PDOException`, `could not find driver'`
 */
$dbh = new PDO( "pgsql:dbname=test;host=localhost", 'fabien', NULL );
$res = $dbh->query(  'SELECT name FROM test_table'  )->fetchAll( PDO::FETCH_ASSOC );
echo $res[0]['name']; // echoes the content of said table, i.e. `hello database` -- OK

?>

编辑:

我意识到我对 heroku local 所做的整个模型完全关闭了。它只是这样做:

“Heroku Local 从 .env 文件中读取配置变量。” (来自https://devcenter.heroku.com/articles/heroku-local

错误地假设它在本地提供了与 heroku 在云中提供的相同类型的灵活性(即:dev-prod-parity,例如:选择要运行和重现的 PHP 版本的能力本地与云中的设置相同),并且它带有自己的二进制文件。

实际上,heroku local 仅依靠系统的默认 PHP 安装和扩展(或缺少)来运行 Web 服务器。

一旦理解,问题就变成了通过在本地系统上安装 pdo_pgsql 来解决它,按照 Shyam Bhimani 的解决方案。

【问题讨论】:

  • 你试过了吗? sitepoint.com/hosted-postgresql-with-heroku 或者你可以在本地做,如果你能告诉我你使用的是哪个操作系统,我可以帮助你。
  • @ShyamBhimani 我能够为托管在 heroku 上的 heroku 应用程序配置一个数据库。我还能够在本地开发环境(Mac OS X)上创建数据库。问题是如何在本地为 heroku 安装 pdo_pgsql?

标签: php postgresql heroku pdo


【解决方案1】:

试试这个:

$ ./configure --with-pdo-pgsql

使用 --with-pdo-pgsql[=DIR] 安装 PDO PostgreSQL 扩展,其中可选的 [=DIR] 是 PostgreSQL 基本安装目录,或 pg_config 的路径。 p>

更多详情可以关注这两个文档(1)(2)

【讨论】:

  • 谢谢,您在链接 #2 上引用的 install_psql_php.sh 脚本帮助很大。我还意识到heroku local 所做的整个模式都已关闭,如果这可能对某人有帮助,我会更新我原来的问题。
猜你喜欢
  • 2019-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-23
  • 1970-01-01
相关资源
最近更新 更多