php artisan migrate
命令,但是出现了异常:
[Illuminate\Database\QueryException]
could not find driver (SQL: select * from information_schema.tables where table_schema = pmaramaldb and table_name = migrations)[PDOException]
could not find driver
我的 .env 文件内容如下:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=pmaramaldb
DB_USERNAME=user
DB_PASSWORD=password
我遵循了大部分的指南来解决这个错误,但是没有任何积极的结果:
启用扩展解决方案:
php.ini文件是自动生成的,我想这是由Plesk完成的。在文件开头,它说:
; 注意!
;
; 不要修改此文件,因为它是自动生成的,
; 所以您所有的更改都将在下一次生成文件时丢失。
所以我还是尝试了一下。之后我重新启动了Apache,然后再次尝试……还是不行。
安装php7.0-mysql解决方案:
我也尝试安装MySQL,以防它没有被安装:
user@server:/var/www/vhosts$ sudo apt-get install php7.0-mysql
Reading package lists... Done
Building dependency tree
Reading state information... Done
php7.0-mysql ya es la versión más reciente.
0 upgraded, 0 newly installed, 0 to remove and 67 not upgraded.
** Solución de instalación SQL Lite:**
También he intentado lo que dice este enlace: sudo apt-get install php5-sqlite
y el resultado fue:
user@server:/var/www/vhosts/system/maramal.io/etc$ sudo apt-get install php5-sqlite
Reading package lists... Done
Building dependency tree
Reading state information... Done
php5-sqlite is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 67 not upgraded.
Composer Dump-autoload 解决方案:
这样也不行。我已经尝试过 composer dump-autoload
,但它也不起作用。
运行命令 php -i
后:
PDO
PDO support => enabled
PDO drivers =>
...
PHP Version => 5.6.30-1+deb.sury.org~trusty+1
好的,我不确定这是否与错误有关,但通过运行 php -v
显示的版本是:
php -i
,以确保它与基于Web的版本匹配。有时候,在CLI上可能会得到不同于Apache上的PHP版本。 - apokryfoswhich php
命令,找到当前正在运行的 PHP 版本,删除它并将 PHP 7 的二进制文件链接到你的/usr/bin
或其他路径目录。你当前的 CLI PHP 没有任何 PDO 驱动程序。 - apokryfosmv /usr/bin/php /usr/bin/php.old
然后执行ln -s /path/to/php/bin/php /usr/bin/php
。不知道你的 PHP 安装在哪里,你可能需要查找一下(phpinfo 可能会显示它的位置)。 - apokryfos