2017-01-11 60 views
1

我的symfony項目找不到pdo_mysql驅動程序。我使用的是debian服務器。相同的配置在OSX上正常工作,但不在這裏。當我使用PHP -m命令顯示它的驅動程序,也是PHP -i | grep的PDO_MYSQL顯示:Symfony 3不發現pdo_mysql驅動程序

/etc/php/7.0/cli/conf.d/20-pdo_mysql.ini, 
API Extensions => mysqli,pdo_mysql 
pdo_mysql 
pdo_mysql.default_socket => /var/run/mysqld/mysqld.sock =>  /var/run/mysqld/mysqld.sock 

這是我的symfony配置和paramters:

parameters: 
database_host: 127.0.0.1 
database_port: 3306 
database_name: bisol_time 
database_user: root 
database_password: root 

配置:

doctrine: 
dbal: 
    driver: pdo_mysql 
    host:  "%database_host%" 
    port:  "%database_port%" 
    dbname: "%database_name%" 
    user:  "%database_user%" 
    password: "%database_password%" 
    charset: UTF8 

那我能做些什麼。我嘗試一切,閱讀這個問題下的每一個主題,但我找不到解決方案。誰能幫我?

+0

我發現這只是與PHP 7的問題。我安裝PHP 5和相同的配置,它的工作原理。任何人都知道爲什麼和如何在PHP 7中做到這一點? – sanof

+0

也許是因爲CLI和網絡服務器的配置不同? – lxg

回答

1

這與Symfony無關,但是與系統設置無關。

正如您在CLI中運行PHP時所看到的,它使用/etc/php/7.0/cli/conf.d/20-pdo_mysql.ini中的配置(請注意路徑中的cli)。雖然Apache使用它最有可能使用/etc/php/7.0/apache2/conf.d/20-pdo_mysql.ini或類似的。

您可以nevigate到/etc/php/7.0/或創建info.php<?php phpinfo();並查看配置文件的位置。

看來,在Apache的PHP配置沒有安裝驅動程序。

+0

是的,當我更改php的版本時,我發現它不是symfony問題,而是php配置。我使用PDO創建了簡單的PHP腳本連接到數據庫,它工作,但它不適用於SF項目。這就是爲什麼我懷疑這也可能是SF太過分了?另外我用php -i | grep ini來找到所有的配置文件,並找到一個與pdo_mysql一樣的/etc/php7/cli/conf.d/20-pdo_mysql.ini,裏面只有extension = pdo_mysql.so和優先級優先級。 – sanof

+0

如果你能接受我的答案,那將會很好。謝謝。 – Stepashka

1

我相信PHP 5有一個不同的pdo。 在我的系統(CentOS 6)上我有php70u-pdo.i686。我使用yum list installed |grep pdo進行了檢查。我無法指導您在OSX上安裝,我懷疑您需要使用brew,但請檢查是否可以安裝pdo for PHP7並在您的php.ini文件中啓用它。

聽起來像是這個問題。


編輯#2基於評論

你可以嘗試:

apt-get install php7.0 php7.0-mysql 

我認爲MySQL的安裝PDO爲好。嘗試一下。不知道它會起作用。

+0

沒有在OSX上沒有問題我已經做到了。問題出在Debian服務器上(我的生產服務器,OSX是我的開發機器個人電腦)我通過從debian服務器卸載php7並安裝php5來解決問題。它現在可以工作,但我wolud想知道爲什麼在將來我會使用PHP 7的應用程序將工作正常。而且在osx上btw我用brew是。 tnx – sanof

+0

看到我的編輯#2發佈。 –