无论如何都要从本地运行的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 0.9.8r 2011年2月8日
启用PostgreSQL支持
答案 0 :(得分:1)
所以我在Heroku与一位代表交谈。他们向我确认,它不需要任何特定的帐户层连接到Heroku Postgres数据库,唯一的规定是连接在远程连接时使用ssl。所以我的问题是pgsql在我的php构建中没有ssl支持的结果。