Je développe un site Web sur un serveur. Je n'ai accès qu'à MySQL et FTP. Par conséquent, toutes les commandes que j'exécute se font via le shell ph37 de b374k. Je rencontre un problème de Laravel avec le pilote SQL. J'ai essayé de passer à SQLite hébergé dans un fichier (dans database/database.sqlite), mais l'exception levée est la même que lorsque vous utilisez MySQL. Les entrées et sorties de la console sont les suivantes:
php artisan migrate:refresh --seed
[Illuminate\Database\QueryException]
could not find driver (SQL: select * from sqlite_master where type = 'table ' and name = migrations)
[Doctrine\DBAL\Driver\PDOException]
could not find driver
[PDOException]
could not find driver
Les extensions Apache installées sur le serveur sont les suivantes:
/etc/php/5.6/Apache2/conf.d/10-mysqlnd.ini,
/etc/php/5.6/Apache2/conf.d/10-opcache.ini,
/etc/php/5.6/Apache2/conf.d/10-pdo.ini,
/etc/php/5.6/Apache2/conf.d/15-xml.ini,
/etc/php/5.6/Apache2/conf.d/20-calendar.ini,
/etc/php/5.6/Apache2/conf.d/20-ctype.ini,
/etc/php/5.6/Apache2/conf.d/20-curl.ini,
/etc/php/5.6/Apache2/conf.d/20-dom.ini,
/etc/php/5.6/Apache2/conf.d/20-exif.ini,
/etc/php/5.6/Apache2/conf.d/20-fileinfo.ini,
/etc/php/5.6/Apache2/conf.d/20-ftp.ini, /etc/php/5.6/Apache2/conf.d/20-Gd.ini,
/etc/php/5.6/Apache2/conf.d/20-gettext.ini,
/etc/php/5.6/Apache2/conf.d/20-iconv.ini,
/etc/php/5.6/Apache2/conf.d/20-json.ini,
/etc/php/5.6/Apache2/conf.d/20-mbstring.ini,
/etc/php/5.6/Apache2/conf.d/20-mcrypt.ini,
/etc/php/5.6/Apache2/conf.d/20-mysql.ini,
/etc/php/5.6/Apache2/conf.d/20-mysqli.ini,
/etc/php/5.6/Apache2/conf.d/20-pdo_mysql.ini,
/etc/php/5.6/Apache2/conf.d/20-phar.ini,
/etc/php/5.6/Apache2/conf.d/20-posix.ini,
/etc/php/5.6/Apache2/conf.d/20-readline.ini,
/etc/php/5.6/Apache2/conf.d/20-shmop.ini,
/etc/php/5.6/Apache2/conf.d/20-simplexml.ini,
/etc/php/5.6/Apache2/conf.d/20-sockets.ini,
/etc/php/5.6/Apache2/conf.d/20-sysvmsg.ini,
/etc/php/5.6/Apache2/conf.d/20-sysvsem.ini,
/etc/php/5.6/Apache2/conf.d/20-sysvshm.ini,
/etc/php/5.6/Apache2/conf.d/20-tokenizer.ini,
/etc/php/5.6/Apache2/conf.d/20-wddx.ini,
/etc/php/5.6/Apache2/conf.d/20-xmlreader.ini,
/etc/php/5.6/Apache2/conf.d/20-xmlwriter.ini,
/etc/php/5.6/Apache2/conf.d/20-xsl.ini,
/etc/php/5.6/Apache2/conf.d/20-Zip.ini
Quel peut être le problème et comment puis-je le résoudre? (Je n'ai pas accès à root bash)
Si vous le pouvez, lancez:
composer update
composer require doctrine/dbal
Il semble que vous ayez une dépendance manquante
Modifier:
Vous devrez peut-être commenter ce qui suit dans votre fichier php.ini.
;extension=pdo_mysql.so
Tiré de cet article: Laravel 5 PDOException impossible de trouver le pilote . Je pense que je devais faire exactement ce qui suit pour configurer laravel sur Digital Ocean.
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
Puis exécutez le cmd php artisan migrate
J'ai eu la même erreur lors de l'exécution de ma suite de tests. Il fonctionnait auparavant mais il a cessé de fonctionner après la mise à niveau de php. Alors j'ai fait
Sudo apt-get install php-sqlite3
et cela a fonctionné.
Commencez par vérifier php -m
. Si vous ne voyez pas le pilote mysql, installez mysql Sudo apt-cache search php-mysql
Vos résultats seront similaires à:
php-mysql - MySQL module for PHP [default]
installer php- mysql Driver
Sudo apt-get install php7.1-mysql
Encore plus simple sous Ubuntu (18.04)
apt install php-mysql
Terminé. Pas besoin de modifier les fichiers .ini
.
Bonne codage!
Enfin j'ai corrigé ça. Il y avait une faute de frappe dans la configuration du serveur et tous les chemins d'accès aux fichiers exécutables php étaient corrects, à l'exception du chemin d'accès à php-cli, qui a causé l'erreur. Quand j'ai corrigé le chemin, tout a bien fonctionné.
Dans la fenêtre OS. J'ai uncomment extension = pdo_mysql pour le fichier php.ini qui se trouve dans le même répertoire que php.exe. après ça marche bien.
Dans CentOS7, je tente ceci: yum install php-mysql
, puis je modifie le fichier php.ini