我正在使用mapbender3,它是在本地计算机上的symfony2中开发的。我被要求将应用程序连接到远程potgreSQL服务器。以下是 parameters.yml 文件中的配置。
parameters:
database_driver: pdo_pgsql
database_host: 192.168.3.100
database_port: 5434
database_name: idc_core
database_path: ~
database_user: *******
database_password: *******
mailer_transport: smtp
mailer_host: localhost
mailer_user: ~
mailer_password: ~
但是当我运行命令时:
php app/console doctrine:database:create
我一直收到以下错误
could not create database for connection named "idc_core"
cound not find driver
我在Windows 7上使用WAMP服务器,驱动程序pdo_pgsql在我的本地计算机上显示活动并运行。
我已检查 phpinfo()并显示 pdo_pgsql 已启用,但当我在命令行中运行php -m
以查看编译的模块时,
我可以看到 PDO , pdo_mysql 和 pdo_sqlite ,但 pdo_pgsql
答案 0 :(得分:3)
务必在'default'
app/config/database.php
密钥
对于postgres,这将是'default' => 'postgres',
如果收到[PDOException] could not find driver
错误,请检查您是否安装了正确的PHP扩展程序。您需要安装并启用pdo_pgsql.so
和pgsql.so
。有关如何执行此操作的说明因操作系统而异。
对于Windows,pgsql
扩展名应使用官方PHP发行版预先下载。只需修改php.ini
,然后取消注释extension=pdo_pgsql.so
行和extension=pgsql.so
此外,在php.ini
中,请确保将extension_dir
设置为正确的目录。它应该是PHP安装目录中名为extensions
或ext
或类似的文件夹。
最后,将libpq.dll
从C:\wamp\bin\php\php5.*\
复制到C:\wamp\bin\apache*\bin
,然后通过WampServer界面重启所有服务。
如果您仍然遇到异常,则可能需要将postgres \bin
目录添加到PATH
:
PATH
条目。这应该有希望解决任何问题。有关更多信息,请参阅:
答案 1 :(得分:3)
您应该将 pdo_pgsql 扩展名添加到您的php的 CLI 配置
yourPhpDirectory / CLI / php.ini中
CLI 使用此配置在命令行中工作,而不是apache。这就是phpinfo();
向您显示 pdo_pgsql 和php -m
的原因。同样在Windows操作系统下,您应该重新启动命令行工具,以便在任何配置更改后查看差异。
答案 2 :(得分:2)
在php_pdo_pgsql
(CLI的一个)中启用扩展php_pgsql
和php.ini
:
extension=php_pdo_pgsql.dll
extension=php_pgsql.dll
确保" Port"和#34;登录凭证"通过从Adminer等数据库管理工具进行测试,远程服务器是正确的。