J'ai une mauvaise expérience lors de l'installation de Laravel. Cependant, j'ai pu le faire et passer au niveau suivant. J'ai utilisé des générateurs et créé mes migrations. Mais quand je tape la dernière commande
php artisan migrate
Il lance une exception PDOException - impossible de trouver le pilote.
'mysql' => array(
'driver' => 'mysql',
'Host' => 'localhost',
'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
C'est ma configuration dans config/database.php.
J'ai essayé de chercher sur les forums stackoverflow et laravel et les gens suggèrent que c'est un problème d'AOP et non d'artisan ou php - j'ai suivi ces suggestions comme ajouter
extension=pgsql.so
extension=pdo_pgsql.so
dans php.ini
Aucun résultat positif. Il dit toujours [PDOException]could not find driver.
Quelqu'un peut-il aider s'il vous plaît résoudre ce problème.
Environnement que j'utilise: Mac, Laravel 4, MAMP PRO avec php 5.4.4
Vous pouvez utiliser
Sudo apt-get install php7-mysql
ou
Sudo apt-get install php5-mysql
ou
Sudo apt-get install php-mysql
Cela a fonctionné pour moi.
Cela a fonctionné pour moi:
Sudo apt-get install php5-sqlite
Cette sqlite installée pour php5, puis j’ai exécuté à nouveau la commande php artisan migrate et a parfaitement fonctionné.
Vous devez activer spécifiquement le plugin pdo_mysql. En supposant que vous utilisez une installation standard PHP, il vous suffira généralement d'ajouter ceci à votre fichier PHP.ini:
extension=pdo_mysql.so
Vous devez cependant vous assurer que ce fichier existe dans le répertoire de l'extension.
L'ajout de pdo_pgsql.so
n'aide pas car c'est pour PostgreSQL.
De plus, vous devez vous assurer de redémarrer le serveur Web après avoir apporté les modifications au fichier ini PHP, car les modifications risquent de ne pas être reflétées autrement.
Nous avons rencontré le même problème ici et cela s’avère que parce que PHP en ligne de commande utilise un fichier php.ini
différent de la version du navigateur. C’est pourquoi il semble que l’extension est chargée correctement lorsque vous regardez phpinfo()
dans un navigateur.
Selon cette réponse , il vous suffit d’exécuter:
php --ini
Sur la ligne de commande, qui vous indiquera le chemin d'accès au php.ini
actuellement chargé (probablement en fait un fichier php-cli.ini
situé au même endroit que votre fichier php.ini
normal).
Une fois que vous avez trouvé cela, modifiez-le avec les extensions pdo que vous voulez (dans ce cas pour MySQL):
extension=pdo_mysql.so
Ou, pour tous les autres utilisateurs de Windows utilisant un serveur WAMP, cela ressemble probablement à ceci:
extension=php_pdo_mysql.dll
Je pense que vous avez manqué le pilote mysql pour php5 . Exécutez la commande ci-dessous:
Sudo apt-get install php5-mysql
/etc/init.d/php5-fpm restart
Veuillez vérifier également votre fichier Laravel .env
. Assurez-vous que DB_CONNECTION=mysql
, sinon cela ne fonctionnera pas avec MySQL. Il a essayé de charger autre chose.
J'obtenais aussi la même erreur -> "[PDOException]
impossible de trouver le pilote "
Après cela, j'ai utilisé de nombreuses commandes, mais je n'ai reçu aucune aide.
Enfin, j'ai utilisé la commande suivante, qui a résolu mon problème.
Sudo apt-get install php5-sqlite
Laravel Testing with sqlite nécessite des pilotes php pdo sqlite
Pour Ubuntu 14.04
Sudo apt-get install php5-sqlite
Sudo service Apache2 restart
Dans Ubuntu 16.04, il n'y a pas de php5-sqlite
Sudo apt-get install php7.0-sqlite
Sudo service Apache2 restart
Avait le même problème et juste pensé, le site Web est exécuté sous le php de MAMP, mais lorsque vous appelez la commande, il exécute le mac (si aucun chemin bash modifié). vous aurez un problème lorsque mac n'a pas ces extensions.
lancez php -i pour trouver les extensions chargées et installez celles que vous avez manquées. ou lancez '/Applications/MAMP/bin/php/php5.3.6/bin/php artisan {votre commande}' pour utiliser les MAMP
Il vous manque un pilote PDO.
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:
Mot de passe de recherche Sudo apt-cache
Then Run the cmd php artisan migrate
Vous devez installer la dernière version de php mysql
dans mon cas, je suis installer php7.1-mysql
Essaye ça
Sudo apt-get install php7.1-mysql
J'utilise la dernière version de laravel
J'ai eu cette erreur pour le PostgreSQL et la solution est:
Sudo apt-get install php7.1-pgsql
Vous devez uniquement utiliser votre version PHP installée, la mienne est 7.1 . Cela a résolu le problème pour PostgreSQL.
Cela a fonctionné avec moi: (pour pgsql: utilisez 'pgsql' au lieu de 'mysql')
Étape 1)
Sudo apt-get install php-mysql
Étape 2)
php artisan config:clear
Étape 3)
php artisan config:cache
Étape 4)
Ensuite, redémarrez votre serveur, générez à nouveau la clé et migrez-la, c'est fait.
Je dis ubuntu 14.04
La commande ci-dessous a résolu ce problème pour moi.
Sudo apt-get install php-mysql
Dans mon cas, après avoir mis à jour ma version php de 5.5.9 à 7.0.8, j'ai reçu cette erreur, y compris deux autres erreurs.
les erreurs:
laravel/framework v5.2.14 requiert ext-mbstring * -> l'extension PHP demandée mbstring est absente de votre système.
phpunit/phpunit 4.8.22 requiert ext-dom * -> le nom de l'extension PHP demandé est absent de votre système.
[PDOException]
impossible de trouver le pilote
Solutions:
J'ai installé ces paquets et mes problèmes ont disparu.
Sudo apt-get install php-mbstring
Sudo apt-get install php-xml
Sudo apt-get install php-mysql
vérifiez d'abord votre version php comme ceci:
php -v
après avoir obtenu le numéro de version, par exemple, je reçois 7.1 puis installez-le comme ça
Sudo apt-get install php7.1-sqlite //for laravel testing with sqlite
Sudo apt-get install php-mysql //for default mysql
Sudo apt-get install php7.1-mysql //for version based mysql
Sudo apt-get install php7.1-common //for other necessary package for php
et besoin de redémarrer Apache2
Sudo service Apache2 restart
vient de remplacer:; extension = pdo_mysql à extension = pdo_mysql dans le fichier php.ini.
J'ai eu ce problème sur Debian. Le problème était que j'utilisais le référentiel dotdeb pour les paquets PHP plus récents. Pour une raison quelconque, il a mis à jour le php cli à 7.0, tandis que le binaire web php est resté php 5.6. J'ai utilisé cette réponse pour lier le binaire en ligne de commande php à la version 5.6, comme suit:
$ Sudo ln -sfn /usr/bin/php5 /etc/alternatives/php
Pour les futurs chercheurs ..___ Sous FreeBSD, essayez la suivante
pkg_info | grep php5-pdo_mysql
si vous voyez la ligne vide en retour, procédez comme suit:
cd /usr/ports/databases/php5-pdo_mysql
et le faire l'installation
make install clean
puis redémarrez simplement votre Apache et vous avez terminé
par exemple. Sudo /usr/local/etc/rc.d/Apache22 restart
Installez-le via cette commande
Sudo apt-get install php5-Gd
cela a fonctionné pour moi.
J'avais aussi la même erreur -> "[PDOException] Impossible de trouver le pilote"
J'ai réalisé que le php pointait vers/usr/bin/php au lieu du lampp/opt/lampp/bin/php, j'ai donc simplement créé Et alias
alias php = "/ opt/lampp/bin/php"
il fallait également mettre à jour le fichier .env pour s’assurer que les informations d’accès à la base de données étaient mises à jour.
Et devinez quoi, ça a fonctionné!
J'ai trouvé la bonne solution pour cette erreur! Aucune base de données n'est installée ou votre base de données par défaut dans ce fichier config/database.php Est définie sur une autre base de données comme celle-ci
'default' => 'sqlite',
'default' => env('DB_CONNECTION', 'sqlite'), //laravel 5.2
changer la valeur par défaut de celle que vous avez installée ou installer cette base de données qui est faite pour être la valeur par défaut! J'avais installé mysql et php artisan migrate fonctionnait après avoir changé cette ligne en ceci:
'default' => 'mysql',
'default' => env('DB_CONNECTION', 'mysql'), //laravel5.2
Si vous utilisez un système basé sur Arch, comme dans Manjaro
juste utiliser
Sudo pacman -S php-sqlite
Redémarrez votre httpd
systemctl restart httpd
Si vous utilisez Laravel 5.x et que l'erreur consiste à essayer de modifier les attributs d'une colonne, il est possible que l'erreur provienne d'un prérequis manquant.
Essaye ça:
composer require doctrine/dbal
Ensuite, essayez d'exécuter vos migrations.
À partir d'ici: https://laravel.com/docs/master/migrations#modifying-columns
Dans mon cas, je ne savais pas que le PHP exécuté par Apache était différent de celui exécuté par CLI. Cela pourrait être le cas si, lors de la configuration dans httpd.conf, vous avez spécifié un module PHP, différent de celui par défaut utilisé par votre CLI.
pour les utilisateurs de windows 10 et WAMP ayant trouvé ce message, j'ai une solution. Veuillez visiter ce lien . Cela a fonctionné pour moi et il était difficile de trouver une solution, mais j'espère que cela pourra aider d'autres personnes dans le futur.