2016-06-21 121 views
0

我使用兩個Docker容器,一個運行ubuntu和apache webserver,另一個運行mysql服務器。容器是鏈接的,我可以從ubuntu容器連接到mysql服務器。對於我在Ubuntu容器中使用的連接:Doctrine無法連接到鏈接的Docker容器中的MYSQL數據庫

mysql -u root -h mysql 

其中第二個'mysql'是容器的名稱。我也可以通過容器ID連接到它,因此連接工作以及從Windows環境連接到數據庫。

什麼不工作是從教條到在ubuntu容器中的PHP應用程序內的數據庫的連接。

的配置是這樣的:

'doctrine' => array(
     'connection' => array(
      'orm_default' => array(
       'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver', 
       'params'  => array(
        'host'  => 'mysql', 
        'port'  => '3306', 
        'user'  => 'root', 
        'password' => '', 
        'dbname' => 'db_name', 
        'charset' => 'utf8', 
       ) 
      ) 
     ), 
) 

但我得到的錯誤消息

Uncaught PDOException: could not find driver in /var/www/vendor/zendframework/zend-servicemanager/src/ServiceManager.php 

Zend\ServiceManager\Exception\ServiceNotCreatedException: An abstract factory could not create an instance of doctrine.entitymanager.ormdefault(alias: doctrine.entitymanager.orm_default). in /var/www/vendor/zendframework/zend-servicemanager/src/ServiceManager.php 

沒有人有任何想法如何解決這個和確切位置錯誤來自?

我已經嘗試將容器ID作爲「主機」,並將「密碼」字段註釋爲未使用。

在此先感謝

喬納森

回答

0

你必須讓你的系統上PDO_MYSQL,它似乎不連通的問題,而是一個PHP配置問題。

你可以嘗試做你的php容器內該命令

php -i | grep pdo_mysql 

只是想了解如果PHP有這個模塊

+0

我在/ var/www目錄中使用的命令,但它並沒有給我任何輸出不幸:/ – flautzr