J'ai installé Lampp sur mon système Linux et j'apprends symfony2 tout en essayant de créer le schéma avec la commande symfony2
php app/console doctrine:schema:create
Je reçois le message d'erreur suivant: -
PDOException “could not find driver”
J'ai également commenté cette ligne extension=php_pdo_mysql.dll
dans le fichier php.ini
J'ai essayé de chercher mon problème sur Google mais je n'ai pas pu le résoudre. Quand j'exécute la commande php -m
, j'obtiens le résultat suivant: -
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
----
----
Y at-il un moyen que je peux supprimer ce problème?
J'espère que vous dirigez votre projet dans localhost. Dans votre dossier de projet app/config, un fichier nommé parameters.ini, vérifiez que la configuration de votre connexion à la base de données Mysql est correcte. Si vous utilisez mysql, voir database_driver=pdo_mysql
est son pilote.
Ci-dessous un exemple.
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
J'espère que ça vous aide.
Sous Ubuntu, écrivez dans la console
Sudo apt-get install php5-Gd php5-mysql
et ça va marcher
Vous devez avoir un module appelé pdo_mysql
.
Recherchez ce qui suit dans la sortie phpinfo()
,
pdo_mysql => Pilote PDO pour MySQL, version de la bibliothèque cliente => 5.1.44
pour installer pdo_mysql, procédez comme suit:
pecl install pdo
pecl install pdo_mysql
puis ajoutez les éléments suivants à votre fichier php.ini
:
extension=pdo.so
extension=pdo_mysql.so
Deux versions PHP sont installées sur mon serveur PHP 5.6 et PHP 7.
Quand j'exécute la commande php app/console doctrine:schema:update
j'ai l'erreur: [PDOException] could not find driver
Je résous cette erreur en spécifiant la version PHP:
php5.6 app/console doctrine:schema:update
brew install php70-pdo-pgsql
au cas où vous auriez installé php7 sur mac avec brassage et changez la version de php en fonction de ce que vous avez installé.
On dirait que votre installation manque les fichiers .so nécessaires à la mise en place de la connexion mysql. Si vous utilisez un système de gestion de paquets pour installer PHP, assurez-vous d'avoir installé tous les sous-modules nécessaires (dans ce cas, vous aurez besoin de mysql-dev et des divers PHP PDO modules), bien que ces dépendances aient dû être résolues pour vous par le gestionnaire de paquets.
Si vous ne passez pas par un gestionnaire de paquets, vous devrez alors compiler les fichiers .so requis à partir des sources.
si vous utilisez XAMPP, dans le fichier php.ini, la ligne n ° 897 (dépend de la version),
;extension=php_pdo_pgsql.dll
décommentez-le, alors il apparaît comme ci-dessous
extension=php_pdo_pgsql.dll
dans le fichier php.ini, ligne 897, redémarrez XAMPP.