我在基于CakePHP的项目的开发环境方面遇到了一些麻烦。
问题是,CakePHP可以在生产中连接,但如果我在我的PC上运行XAMPP,那么就会抛出一个
FATAL: no pg_hba.conf entry for host "myexternalip", user "dbuser", database "dbname", SSL off
但使用相同的参数我可以通过pgAdmin从我的PC连接。
我已经尝试了一些谷歌搜索提示,我发现将libpq.dll
从c:\xampp\php
复制到c:\xampp\apache\bin
,但是没有运气,检查了{{1}并且pnp.ini
行没有注释,尝试过几次重启apache但没有任何改变
该项目在heroku平台下托管,我的extension=php_pdo_pgsql.dll
看起来像
/app/config/database.php
这里是Stack Trace
public $production = array(
'datasource' => 'Database/Postgres',
'persistent' => false,
'host' => 'anywhere.at.amazonaws.com',
'login' => 'dbuser',
'password' => 'dbpwd',
'database' => 'dbname',
'encoding' => 'utf8',
);
任何人都可以给我另一个可能有帮助的提示吗?
答案 0 :(得分:1)
在我找到解决方案之后。
问题在于并不简单。
由于Postgres服务器托管在heroku平台下,服务器上的默认配置为require
ssl,因此我遇到了此配置:
public $production = array(
......
'sslmode' => 'require',
);
现在错误已更改为sslmode value "require" invalid when ssl support is not compiled
然后我用google搜索它,似乎至少在XAMPP v5.5.19下,PHP文件夹中的libpq.dll
没有用ssl支持编译
这是帮助我解决这个问题的问题: How to installPostgreSQL client library for PHP on Windows with SSL enabled
似乎pgAdmin' s libpq.dll
是用ssl支持编译的,所以这是我可以通过pgAdmin连接的原因,但不能用php连接
感谢帮助人们!