Ich entwickle eine Website auf einem Server habe ich nur Zugang zu MySQL und FTP, so dass alle Befehle, die ich ausführen, sind durch die b374k php shell . Ich habe ein Laravel-Problem mit dem SQL-Treiber. Ich habe versucht, zu file-hosted SQLite (in database/database.sqlite) zu wechseln, aber die geworfene Ausnahme ist die gleiche wie bei der Verwendung von MySQL. Die Eingabe & 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 Zugang zu root bash)
Wenn Sie können, führen Sie:
composer update
composer require doctrine/dbal
Es sieht so aus, als ob Sie eine fehlende Abhängigkeit haben
Bearbeiten:
Möglicherweise müssen Sie das Folgende in Ihrer php.ini-Datei auskommentieren.
;extension=pdo_mysql.so
Entnommen aus diesem Beitrag: https://stackoverflow.com/questions/35240414/laravel-5-pdoexception-could-not-find-driver . Ich glaube, ich musste genau so etwas tun, als ich Laravel auf Digital Ocean einrichtete.
Ihr Datenbanktreiber ist nicht vorhanden. Um das Problem zu lösen
Installieren Sie zunächst den Treiber
Für Ubuntu: Für die 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
Dann führen Sie den cmd php artisan migrate
aus
Endlich habe ich das Problem behoben. Es gab einen Tippfehler in der Serverkonfiguration, und alle Pfade zu den PHP-Extecutables waren in Ordnung, außer dem Pfad zu php-cli, der den Fehler verursachte. Als ich den Pfad korrigierte, funktionierte alles einwandfrei.