Heroku Postgres从localhost PHP应用程序连接

时间:2012-09-12 17:14:50

标签: php postgresql heroku

无论如何都要从本地运行的PHP应用程序连接到Heroku postgres(Free)数据库实例。我能够成功连接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),Application   框架(例如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支持

1 个答案:

答案 0 :(得分:1)

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