J'ai un projet Laravel 5.4 sur mon Ubuntu 14.04 (VPS avec Plesk 12.5.30). Après avoir créé la base de données et configuré le fichier .env avec les informations requises, j'ai lancé php artisan migrate
et des exceptions ont été levées:
[Illuminate\Database\QueryException]
Impossible de trouver le pilote (SQL: sélectionnez * dans information_schema.tables où table_schema = pmaramaldb et nom_table = migrations)[PDOException]
impossible de trouver le pilote
Mon fichier .env contient:
DB_CONNECTION = mysql
DB_Host = 127.0.0.1
DB_PORT = 3306
DB_DATABASE = pmaramaldb
DB_USERNAME = utilisateur
DB_PASSWORD = mot de passe
J'ai suivi la plupart des guides pour résoudre cette erreur et il n'y a pas eu de résultats positifs:
Activation de la solution d'extension:
Le fichier php.ini est généré automatiquement, je suppose que cela a été créé par Plesk. Au début du fichier, il est écrit:
; ATTENTION!
;
; NE MODIFIEZ PAS CE FICHIER CAR IL A ÉTÉ GÉNÉRÉ AUTOMATIQUEMENT,
; SO TOUTES VOS MODIFICATIONS SERONT PERDUES LA PROCHAINE FOIS QUE LE FICHIER IS EST GÉNÉRÉ.
Donc j'ai essayé quand même. Après cela, j'ai redémarré Apache puis essayé à nouveau ... Cela n'a pas fonctionné.
Installation de php7.0-mysql Solution:
J'ai aussi essayé d'installer MySQL au cas où ce ne soit pas:
utilisateur @ serveur:/var/www/vhosts $ Sudo apt-get install php7.0-mysql
Leyendo lista de paquet ... Hecho
Créer des dépendances
Lire plus d'informations sur ... Hecho
php7.0-mysql est déjà la dernière version.
0 actualizados, 0 se instalarán, 0 para éliminar y 67 no actualizados.
** Solution d'installation de SQL Lite: **
J'ai aussi essayé en tant que question link dit: Sudo apt-get install php5-sqlite
et le résultat était:
utilisateur @ serveur: /var/www/vhosts/system/maramal.io/etc$ Sudo apt-get install php5-sqlite
Leyendo lista de paquet ... Hecho
Créer des dépendances
Lire plus d'informations sur ... Hecho
php5-sqlite est déjà la version la plus récente.
0 actualizados, 0 se instalarán, 0 para éliminar y 67 no actualizados.
Composer Dump-autoload Solution:
Cela n'a pas fonctionné non plus. J'ai essayé composer dump-autoload
et cela n'a pas fonctionné.
Après avoir exécuté la commande php -i
:
AOP
PDO support => activé
Pilotes PDO =>
...
Version PHP => 5.6.30-1 + deb.sury.org ~ digne de confiance + 1
Eh bien, je ne sais pas si cela a quelque chose à voir avec l'erreur, mais la version affichée en exécutant php -v
est la suivante:
utilisateur @ serveur: ~/chemin $ php -v
PHP 5.6.30-1 + deb.sury.org ~ trusty + 1 (cli)
Copyright (c) 1997-2016 Le groupe PHP
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
avec Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, par Zend Technologies
Il y a un conflit entre le PHP utilisé par Apache et le PHP lié à la ligne de commande. (Il arrive plus souvent que cela devrait être honnête).
Ce qui est généralement fait est:
which php
Cela vous indique quel php sera exécuté lors de l'exécution en ligne de commande. par exemple. /usr/bin/php
mv /usr/bin/php /usr/bin/php.old
Ensuite, liez ou copiez la bonne version PHP vers un chemin d’exécutable:
ln -s /path/to/php/bin/php /usr/bin/php
ou ce qui suit devrait également fonctionner.
cp /path/to/php/bin/php /usr/bin/php
Aussi suggéré si vous voulez pouvoir installer manuellement les mods:
ln -s /path/to/php/bin/phpize /usr/bin/phpize
ln -s /path/to/php/bin/php-config /usr/bin/php-config
De cette façon, votre CLI correspondra à votre serveur Web.
En tant que solution alternative, assurez-vous d'avoir installé php7-mysql
essayez d'exécuter la commande ci-dessous
Sudo apt install php7.0-mysql
J'ai eu le même scénario que vous avez. J'ai résolu le mien comme suit:
1) sur votre terminal, tapez
php --ini
cela produira votre chemin actuel du fichier de configuration php.ini.
2) éditez php.ini en utilisant vim ou votre éditeur préféré.
vim /etc/php.ini
notez que /etc/php.ini est votre fichier de chemin pour votre php.ini. cela peut être différent sur votre machine.
3) recherchez ; extension = php_pdo_mysql.dll et supprimez le commentaire en supprimant le point-virgule (;)
4) enregistrez votre modification php.ini/s
** 5) redémarrer le serveur Web pour appliquer les modifications
Sudo systemctl redémarrer Apache2
** 6) Maintenant, lancez votre commande.
php artisan migrer
espérons que cela vous aide.
Votre pilote de base de données est manquant. Pour résoudre le problème
Installez d'abord le pilote
Pour Ubuntu: Pour la base de données mysql.
Sudo apt-get install php5.6-mysql/php7.2-mysql
Vous pouvez également rechercher d'autres systèmes de base de données.
Vous pouvez également rechercher le pilote:
Sudo apt-cache search drivername
Vous pouvez essayer ces commandes suivantes
php artisan cache:clear
php artisan config:clear
Puis redémarrez votre serveur Apache. Ensuite, reconfigurez votre fichier .env
Ok, j'ai déjà rencontré cette erreur ... Je ne sais pas pourquoi, mais il semblerait qu'en PHP 7.3, il y ait un problème avec les pilotes ou quelque chose de ce que j'ai fait était de revenir au PHP 7.2 et tout a bien fonctionné ...
effacer le cache de l'artisan
php artisan cache:clear
et
php artisan migrate:refresh
c'est tout