2011-09-17 5 views
10

Ho provato Symfony 2 oggi e ho provato a giocare un po 'con Doctrine.Perché Doctrine dice che non riesce a trovare il driver PDO?

Ma quando uso il comando php app/console doctrine:schema:create nella riga di comando, restituisce questo errore:

[PDOException] 
could not find driver 

doctrine:schema:create [--dump-sql] [--em[="..."]] 

mio file php.ini e phpinfo() mostrano Cleary che il driver PDO viene caricato. Ho anche creato un piccolo script in PHP puro per collegarmi al mio database usando PDO e ha funzionato bene. Nessun errore, quindi PDO è ben installato e funziona.

PHP e MySQL sono in esecuzione sul mio computer utilizzando l'ultima versione di EasyPHP.

cosa poteva andare storto con la dottrina? Dove dovrei guardare ora?

+0

Hai passato quel piccolo script dalla CLI troppo? Che dire di 'php -i'? – zerkms

+0

Non funziona quando si esegue lo script dalla CLI ... Ma perché? Non è la stessa installazione di PHP? :/Cosa devo trovare in php -i? –

risposta

6

è necessario configurare correttamente il cli php, per caricare le stesse estensioni che la versione del server web è configurato per essere caricato.

Ecco una link su dove PHP cerca il file di configurazione

+1

Quando eseguo 'php -m' (lista di moduli compilati) posso vedere PDO. Ci sono due file php.ini nella mia directory (uno di dev e on per prod) e ho trovato solo questi. –

+0

Grazie, hai ragione. Il problema è dovuto a un file php.ini mancante per la CLI. –

+1

tipo 'php --ini' per vedere dove il php.ini si trova – Alcalyn

10

Sì, se si digita php -m nella riga di comando, si dovrebbe elencare sia PDO e pdo_mysql. Nel mio caso ha mostrato solo PDO ed è per questo che non è stato possibile trovare il driver MySQL.

Come hai già commentato, penso che sia perché il PHP CLI non riesce a trovare un adeguato file di php.ini.

8

sudo apt-get install php5-mysql

farà la magia

+0

Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti da un autore, lascia un commento sotto il loro post - puoi sempre commentare i tuoi post, e una volta che hai [reputazione] sufficiente (http://stackoverflow.com/help/whats-reputation) essere in grado di [commentare qualsiasi post] (http://stackoverflow.com/help/privileges/comment). – Ziumin

+0

@Ziumin Tornando indietro e guardando questa domanda questa risposta ha davvero risolto il mio problema. Non solo è una risposta, ma potrebbe essere la risposta accettata su questa domanda se espansa. –

+0

Non ha funzionato per me. Tutto dice che PDO è installato e in esecuzione, ma Synfony non riesce a trovarlo. – AngelGris

2

Sulla riga di comando, controllare se si dispone di supporto PDO:

php -m|grep -i pdo 

In caso contrario, la ricerca per il supporto mysql php (Ubuntu):

apt-cache search php5*|grep mysql 

e installarlo:

sudo apt-get install php5-mysql 

Dopo aver installato di nuovo il controllo packagem, si dovrebbe vedere il supporto mysql PDO.