2012-02-16 10 views
12

Mam zainstalowany lampp w moim systemie Linux i uczę Symfony2, starając się stworzyć schemat z poleceniem Symfony2PDOException „nie można znaleźć sterownika” w php

php app/console doctrine:schema:create 

otrzymuję następujący komunikat o błędzie : -

PDOException “could not find driver” 

ja też odkomentuj ta linia extension=php_pdo_mysql.dll w pliku php.ini

starałem się patrzeć i google mój problem, ale nie mógł rozwiązać mój problem. gdy uruchamiam polecenie php -m otrzymuję następujący wynik: -

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 
---- 
---- 

Czy istnieje sposób mogę usunąć ten problem?

Odpowiedz

7

Mam nadzieję, że prowadzisz swój projekt w localhost. W folderze projektu umieść/zainstaluj plik o nazwie parameters.ini, Upewnij się, że konfiguracja połączenia z bazą danych Mysql jest poprawna. Jeśli używasz mysql Zobacz database_driver=pdo_mysql jest jego sterownik.

Poniżej znajduje się przykład.

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 

Mam nadzieję, że to pomoże.

+0

yes Pomógł Ale Ale właśnie zmieniłem te dwie rzeczy database_host = "127.0.0.1" database_port = "3306" i działało – ScoRpion

+0

Dziękuję bardzo – ScoRpion

+0

Zainstalowałem również mysql na moim matchine ubuntu oprócz xampp – ScoRpion

5

Potrzebujesz modułu o nazwie pdo_mysql.

szukać w phpinfo() po wyjściu

Pdo_Mysql => Kierowca PDO dla MySQL, wersja biblioteki client => 5.1.44

zainstalować Pdo_Mysql trzeba to zrobić:

pecl install pdo 
pecl install pdo_mysql 

a następnie dodać następujące do pliku php.ini:

extension=pdo.so 
extension=pdo_mysql.so 
+0

ahh ok. Myślałem, że jesteś na Linuksie. dobrze dolna linia jest taka, że ​​będziesz potrzebował modułu pdo_mysql, aby uzyskać wsparcie dla swoich PDO. Nie jestem świadomy lamp. może to być tak proste, jak sprawdzenie, czy plik dll pdo_mysql jest obecny. Zrestartuj swoją usługę Apache po usunięciu komentarza pakietu pdo_mysql.dll w pliku ini. –

+0

Używam lampp. pakiet, który instaluje php, appache i mysql na swój własny sposób raczej w domyślnych folderach ... i te cmds dają mi błędy configure: error: Nie można znaleźć plików nagłówkowych MySQL pod BŁĄD: '/ tmp/pear/temp/PDO_MYSQL/configure ' nie udało się – ScoRpion

+0

@Jaspreet Chahal, czy twoja odpowiedź działa na Linuksie? Mam taki sam problem z OP, ale nie mam uprawnień do edycji pliku 'php.ini'. Jeśli twoja odpowiedź naprawdę działa, poprosimy mojego przełożonego o włączenie jej do pliku 'php.ini'. – WashichawbachaW

0

Wygląda na to, że w instalacji brakuje plików .so potrzebnych do zaimplementowania połączenia mysql. Jeśli używasz systemu zarządzania pakietami do instalacji PHP, upewnij się, że zainstalowałeś wszystkie niezbędne moduły (w tym przypadku myślę, że będziesz potrzebował mysql-dev i różnych modułów PHP PDO), chociaż takie zależności powinny mieć został rozwiązany przez menedżera pakietów.

Jeśli nie przeszedłeś przez menedżera pakietów, musisz skompilować wymagane pliki .so ze źródła.

6

W Ubuntu, pisać w konsoli

sudo apt-get install php5-gd php5-mysql 

i będzie działać

+0

php5-gd Byłem missing =) po zainstalowaniu wszystkich rozszerzeń, to było dla mnie rozwiązanie, dzięki! –

1

brew install php70-pdo-pgsql w przypadku, gdy zainstalowany php7 na mac z wywaru, a zmiana wersji php zgodnie z tym co zostało zainstalowane.

+0

Dzięki temu pomogło mi to. – Dblock247

0

jeśli używasz XAMPP, a następnie w php.ini linia sygn 897 (w zależności od wersji),

;extension=php_pdo_pgsql.dll 

Odkomentuj, a potem okazuje się, jak poniżej

extension=php_pdo_pgsql.dll 

w php.ini linii pliku nie 897, a następnie ponownie uruchomić XAMPP.

0

Istnieją dwie wersje PHP zainstalowane na mój serwer PHP 5.6 oraz PHP 7

Kiedy uruchomić komendę php app/console doctrine:schema:update mam błąd: [PDOException] could not find driver

rozwiązać ten problem poprzez określenie wersji PHP:

php5.6 app/console doctrine:schema:update 
Powiązane problemy