PDOException “non riusciva a trovare il driver” in php
Domanda
Ho installato LAMPP sul mio sistema Linux, e sto imparando Symfony2, durante il tentativo di creare lo schema con il comando Symfony2
php app/console doctrine:schema:create
Sto ottenendo il seguente messaggio di errore: -
PDOException “could not find driver”
Ho anche decommentare questa riga extension=php_pdo_mysql.dll
nel file php.ini
Ho provato a cercare e Google il mio problema, ma non sono riuscito a risolvere il mio problema. quando il comando php -m
ho eseguito sto ottenendo i seguenti risultati: -
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mysql.so' - /usr/lib/php5/20090626+lfs/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mysqli.so' - /usr/lib/php5/20090626+lfs/mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/pdo_mysql.so' - /usr/lib/php5/20090626+lfs/pdo_mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
mbstring
mhash
openssl
pcntl
pcre
PDO
----
----
C'è un modo per rimuovere questo problema?
Soluzione
La speranza è in esecuzione il progetto in localhost. Nel progetto della cartella app / config un file chiamato parameters.ini, Assicurarsi che il cofiguration connessione al database MySQL è corretta. Se si utilizza MySQL See database_driver=pdo_mysql
è il suo conducente.
Di seguito è riportato un esempio.
database_driver = pdo_mysql
database_host = localhost
database_port =
database_name = databasename
database_user = msqlusername
database_password = mysqlpassword//if not make blank
mailer_transport = smtp
mailer_host = localhost
mailer_user =
mailer_password =
locale = en
secret = ThisTokenIsNotSoSecretChangeIt
La speranza ti aiuta.
Altri suggerimenti
In Ubuntu, scrittura nella console
sudo apt-get install php5-gd php5-mysql
e funzionerà
È necessario disporre di un modulo chiamato pdo_mysql
.
Cercare il seguente in uscita phpinfo()
,
pdo_mysql => DOP driver per MySQL, versione della libreria client => 5.1.44
installare pdo_mysql avete bisogno di fare questo:
pecl install pdo
pecl install pdo_mysql
e quindi aggiungere il seguente al file php.ini
:
extension=pdo.so
extension=pdo_mysql.so
brew install php70-pdo-pgsql
nel caso in cui è stato installato php7 su Mac con birra e, versione di PHP cambio base a ciò che è stato installato.
Ci sono due versioni di PHP installate nel mio server PHP 5.6 e PHP 7
Quando faccio funzionare l'ordine php app/console doctrine:schema:update
ho l'errore: [PDOException] could not find driver
I risolvere questo errore specificando la versione di PHP:
php5.6 app/console doctrine:schema:update
Sembra che il tuo installazione manca i file .so di cui ha bisogno per implementare la connessione mysql. Se si utilizza un sistema di gestione dei pacchetti da installare PHP quindi assicurarsi di aver installato tutti i moduli necessari (in questo caso credo che avrete bisogno di mysql-dev, ed i vari moduli PHP DOP), se tali dipendenze dovrebbero avere stato risolto per voi dal gestore di pacchetti.
Se non sei andato attraverso un gestore di pacchetti, allora si dovrà compilare il necessario .so file da sorgente.
se si utilizza XAMPP quindi in linea file php.ini no 897 (dipende dalla versione),
;extension=php_pdo_pgsql.dll
decommentarla, allora appare come di seguito
extension=php_pdo_pgsql.dll
in linea file php.ini no 897, quindi riavviare XAMPP.