wake-up-neo.com

Laravel: PDOException: Treiber konnte nicht gefunden werden

Ich entwickle gerade eine Website auf einem Server, auf den ich nur Zugriff auf MySQL und FTP habe. Alle Befehle, die ich ausführen, werden über die b374k-PHP-Shell ausgeführt. Ich habe ein Laravel-Problem mit dem SQL-Treiber. Ich habe versucht, zu File-Hosted SQLite (in database/database.sqlite) zu wechseln, aber die ausgelöste Ausnahme ist dieselbe wie bei der Verwendung von MySQL. Die Eingabe und Ausgabe der Konsole ist wie folgt:

   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

Die auf dem Server installierten Apache-Erweiterungen sind:

    /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

Was kann das Problem sein und wie kann ich es beheben? (Ich habe keinen Zugriff auf Root-Bash)

9
artus90

Wenn du kannst, führe Folgendes aus:

composer update

composer require doctrine/dbal

Es sieht so aus, als hätten Sie eine fehlende Abhängigkeit

Bearbeiten:

Möglicherweise müssen Sie Folgendes in Ihrer php.ini-Datei auskommentieren. 

;extension=pdo_mysql.so

Aus diesem Beitrag entnommen: Laravel 5 PDOException Treiber nicht gefunden . Ich glaube, ich musste etwas genau so machen, wenn Sie Laravel auf Digital Ocean einrichten.

27
Nibb

Ihr Datenbanktreiber fehlt. Um das Problem zu lösen

Installieren Sie zuerst den Treiber

Für Ubuntu: Für MySQL-Datenbank.

Sudo apt-get install php5.6-mysql/php7.2-mysql

Sie können auch nach anderen Datenbanksystemen suchen.

Sie können auch nach dem Treiber suchen:

Sudo apt-cache search drivername

Führen Sie dann die cmd php artisan migrate aus.

20
abhishek subedi

Beim Ausführen meiner Testsuite wurde derselbe Fehler angezeigt. Es hat vorher funktioniert, aber es funktionierte nicht mehr, nachdem ich PHP aktualisiert hatte. So tat ich

Sudo apt-get install php-sqlite3

und es hat funktioniert.

10
Mubashar Abbas

Zuerst php -m.__ prüfen.
. Wenn der mysql-Treiber nicht angezeigt wird, installieren Sie mysql Sudo apt-cache search php-mysql
Ihre Ergebnisse sind ähnlich wie:

php-mysql - MySQL module for PHP [default]


install php-mysql Treiber

Sudo apt-get install php7.1-mysql
4
Nadim Tareq

Noch einfacher in Ubuntu (18.04)

apt install php-mysql

Erledigt. Sie müssen keine .ini-Dateien bearbeiten.

Viel Spaß beim Codieren!

2
Stan Smulders

Zum Schluss habe ich das behoben. Es gab einen Tippfehler in der Serverkonfiguration und alle Pfade zu php extecutables waren in Ordnung, außer dem Pfad zu php-cli, der den Fehler verursacht hat. Als ich den Pfad reparierte, funktionierte alles gut.

1
artus90

Im Fenster OS. Ich habe die unkommentierte Erweiterung = pdo_mysql für die php.ini-Datei, die sich im selben Verzeichnis der php.exe befindet. danach funktioniert es gut.

0
chokelive

Ich hatte das gleiche Problem, und ich kommentiere extension=pdo_sqlite und lief die migration und alles hat gut funktioniert.

0
Chetam Okafor

Vermutlich fehlt Ihnen sqlite oder der spezifische DB-Treiber, den Sie migrieren möchten.

Installieren Sie den DB-Treiber und alles wird gut. Sie müssen Ihre php.ini-Datei nicht unbedingt bearbeiten (es ist jedoch eine Möglichkeit, sie zu beheben).

Für SQLite tun -> Sudo apt-get install php-sqlite3 Dann php artisan migrate

NB: Ich nehme an, Sie haben PHP und MySql bereits installiert

0
Prodigy

In CentOS7 try versuche ich folgendes: yum install php-mysql, dann editiere ich die php.ini

0
Donne