2015-11-07 195 views
10

我正在使用mapbender3,它是在本地機器上的symfony2中開發的。我被要求將應用程序連接到遠程的potgreSQL服務器。以下是parameters.yml文件中的配置。使用symfony從postgreSQL創建數據庫

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

我可以看到PDOPDO_MYSQLpdo_sqlite但不是pdo_pgsql

+0

看來你沒有在你的PHP'pdo_pgsql' – DonCallisto

+0

就是 「延長= php_pgsql.dll」 擴展在php.ini取消註釋(你可以用'phpinfo()函數'驗證)? – devz

+0

@DonCallisto'pdo_pgsql'在'phpinfo()'中加載並啓用 – goseo

回答

3

你應該

添加 pdo_pgsql擴展到 CLI配置您的PHP

yourPhpDirectory/CLI/php.ini中

CLI使用此配置在命令行,而不是一個用於apache的工作。這就是爲什麼phpinfo();顯示你pdo_pgsqlphp -m沒有。同樣在Windows操作系統下,您應該重新啓動命令行工具以查看配置更改後的差異。

3

請務必將'default'鍵配置爲app/config/database.php

Postgres的,這將是'default' => 'postgres',

如果您收到一個錯誤[PDOException] could not find driver,請檢查您是否安裝了正確的PHP擴展。您需要安裝並啓用pdo_pgsql.sopgsql.so。有關如何執行此操作的說明因操作系統而異。

對於Windows,pgsql擴展應該預先下載官方PHP發行版。只需編輯php.ini,並取消對行extension=pdo_pgsql.soextension=pgsql.so

此外,在php.ini,確保extension_dir設置爲正確的目錄。它應該是一個名爲extensionsext或您的PHP安裝目錄中的類似文件夾。

最後,將libpq.dllC:\wamp\bin\php\php5.*\複製到C:\wamp\bin\apache*\bin並通過WampServer接口重新啓動所有服務。

如果仍然出現異常,則可能需要\bin目錄添加Postgres的你PATH

  1. 系統屬性 - 在>環境變量
  2. 在「系統變量」組 - >高級選項卡下半部分窗口,滾動瀏覽並找到PATH條目。
  3. 選擇它並單擊編輯
  4. 在現有條目的末尾,將完整路徑放到您的postgres bin目錄中。 bin文件夾應位於postgres安裝目錄的根目錄下。
  5. 重新啓動任何打開的命令提示符,或者確保重新啓動計算機。

這應該有希望解決任何問題。欲瞭解更多信息,請參閱:

來源:https://stackoverflow.com/a/25336292/1045444

2
  1. 同時啓用擴展在php.iniphp_pdo_pgsqlphp_pgsql(無人爲CLI):

    extension=php_pdo_pgsql.dll 
    extension=php_pgsql.dll 
    
  2. 確保「端口」和「登錄憑據」遠程服務器是正確的通過測試一個數據庫管理工具,如Adminer。

相關問題