Je suis en train de développer un site web sur un serveur où je n'ai accès qu'à MySQL et FTP, donc toutes les commandes que j'exécute passent par le shell b374k php . 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 j'utilise MySQL. L'entrée & la sortie de la console est la suivante:
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:
/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, exécutez:
composer update
composer require doctrine/dbal
Il semble que vous ayez une dépendance manquante
Modifier:
Vous pourriez avoir besoin de commenter ce qui suit dans votre fichier php.ini.
;extension=pdo_mysql.so
Tiré de cet article: https://stackoverflow.com/questions/35240414/laravel-5-pdoexception-could-not-find-driver . Je crois que j'ai dû faire exactement la même chose en installant Laravel sur Digital Ocean.
Le pilote de votre 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 bases de données.
Vous pouvez également rechercher le pilote:
sudo apt-cache search drivername
Puis lancez la commande "php artisan migrate".
J'ai finalement résolu le problème. Il y avait une erreur de frappe dans la configuration du serveur et tous les chemins vers les extecutables php étaient corrects, sauf le chemin vers php-cli, qui causait l'erreur. Lorsque j'ai corrigé le chemin, tout a fonctionné correctement.