【问题标题】:Heroku Postgres Connection from localhost PHP application来自本地主机 PHP 应用程序的 Heroku Postgres 连接
【发布时间】:2012-09-14 05:29:27
【问题描述】:

是否可以从本地运行的 PHP 应用程序连接到 Heroku postgres(免费)数据库实例。我能够成功连接 pgAdminIII,但通过连接到同一个 Db 的应用程序连接字符串没有运气?

连接

$dbconn = pg_connect("host=xxxxxx.compute-1.amazonaws.com port=5432 dbname=xxxxxxx user=xxxxxx password=xxxxxx sslmode=require options='--client_encoding=UTF8'");

PHP 代码引发的错误:

 Warning: pg_connect(): Unable to connect to PostgreSQL server: sslmode value "require" invalid when SSL support is not compiled in in 

我在 Heroku 的网站上找到了以下内容,但我希望有人能澄清我是否正在处理 postgres php 问题(在 Apache 上运行 PHP,在 Mac OS X Lion 10.7.4 上运行 PHP 5.3)或者这只是一个Heroku 的以下声明中指出的环境限制:

如何连接到 Heroku Postgres? Heroku Postgres 上的数据库 接受标准的 PostgreSQL 连接。连接可以从 PostgreSQL 客户端应用程序(例如 psql 或 PGAdmin)、应用程序 框架(例如 Ruby-on-Rails 或 Django),或任何其他 libpq 兼容的客户端,从任何地方通过 SSL。

但是,共享数据库只能从应用程序连接 在 Heroku 上运行。

谁能解释一下为什么 pgAdminIII 可以连接但我的应用程序不能连接?

谢谢。

进一步的发现: PHPINFO->

  • OpenSSL 支持已启用
  • OpenSSL 库版本 OpenSSL 0.9.8r 2 月 8 日 2011
  • OpenSSL 标头版本 OpenSSL 0.9.8r 2011 年 2 月 8 日

  • 已启用 PostgreSQL 支持

  • PostgreSQL(libpq) 版本 8.2.23
  • 已禁用 SSL 支持

【问题讨论】:

  • 您需要显示更多细节:代码、连接字符串、任何错误消息的确切文本等。
  • 我遇到了确切的问题。你解决了吗?

标签: php postgresql heroku


【解决方案1】:

因此,我与 Heroku 的一位代表进行了交谈。他们向我证实,连接到 Heroku Postgres 数据库不需要任何特定级别的帐户,唯一的规定是远程连接时连接使用 ssl。所以我的问题是 pgsql 在我的 php 构建中没有 ssl 支持的结果。

【讨论】:

  • 你是怎么解决的?我在 localhost 中安装 Wordpress 时遇到了类似的问题;它没有连接到 Heroku DB……但它从 Heroku 正确连接。我正在使用 XAMPP 并且启用了 pgsql PHP 模块。版本 8.0.3 和 SSL 支持已禁用:S.
  • 我遇到的问题是我当前的 PHP 5.x 版本中没有对 postgres 的 ssl 支持。在共享数据库环境中与 postgres 的所有连接都必须通过 SSL。在 Heroku 平台内进行通信时,不需要(或已安装)该要求。您应该能够通过 PgAdmin 连接到您的 Db,但我在本地主机连接中从未成功。
  • 嗨,谢谢@tafaju - 你如何获得数据库 URL?因为heroku 可能随时改变这一点?
猜你喜欢
  • 2016-01-17
  • 2017-05-11
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 2018-01-10
  • 1970-01-01
  • 2019-03-25
  • 2021-03-29
相关资源
最近更新 更多