我的 Ubuntu 14.04(带有 Plesk 12.5.30 的 VPS)上有一个 Laravel 5.4 项目。创建数据库并使用所需信息设置 .env 文件后,我运行了 php artisan migrate
并引发了异常:
[照亮\数据库\查询异常]
找不到驱动程序 (SQL: select * from information_schema.tables where table_schema = pmaramaldb and table_name = migrations)
[PDO异常]
找不到驱动程序
我的 .env 文件有:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=pmaramaldb
DB_USERNAME=用户
DB_PASSWORD=密码
我已按照大多数指南来解决此错误,但没有任何积极的结果:
启用扩展解决方案:
php.ini 文件是自动生成的,我猜这是由 Plesk 制作的。在文件的开头它说:
;注意力!
;
;不要修改此文件,因为它是自动生成的,
;因此,下次生成文件时,您所做的所有更改都将丢失。
所以无论如何我都试过了。之后,我重新启动了 Apache,然后再次尝试……没有用。
安装php7.0-mysql 解决方法:
我也尝试安装 MySQL,以防万一:
user@server:/var/www/vhosts$ sudo apt-get install php7.0-mysql
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la informationación de estado… Hecho
php7.0-mysql 已经是最新版本了。
0actualizados, 0 se instalarán, 0 para eliminar y 67 no actualizados。
\*\* SQL Lite 安装解决方案:**
我也试过 问题链接 说: sudo apt-get install php5-sqlite
结果是:
user@server:/var/www/vhosts/system/maramal.io/etc$ sudo apt-get install php5-sqlite
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la informationación de estado… Hecho
php5-sqlite 已经是最新版本。
0actualizados, 0 se instalarán, 0 para eliminar y 67 no actualizados。
Composer Dump-autoload 解决方案:
它也没有用。我试过 composer dump-autoload
但没有用。
运行命令后 php -i
:
PDO
PDO 支持 => 启用
PDO 驱动程序 =>
…
PHP 版本 => 5.6.30-1+deb.sury.org~trusty+1
好吧,我不确定这是否与错误有关,但运行 php -v
显示的版本是:
用户@服务器:~/path$ php -v
PHP 5.6.30-1+deb.sury.org~trusty+1 (cli)
版权所有 © 1997-2016 PHP 集团
Zend Engine v2.6.0,版权所有 © 1998-2016 Zend Technologies
Zend OPcache v7.0.6-dev,版权所有 © 1999-2016,Zend Technologies
原文由 Maramal 发布,翻译遵循 CC BY-SA 4.0 许可协议
Apache 使用的 PHP 和链接到命令行的 PHP 之间存在冲突。 (老实说,这种情况发生得更频繁)。
通常做的是:
这告诉您在命令行中运行时将执行哪个 php。例如
/usr/bin/php
然后将正确的 PHP 版本链接或复制到可执行路径:
或者以下也应该有效。
如果您希望能够手动安装模组,还建议您:
这样您的 CLI 将匹配您的网络服务器。
更新:
如果如 this answer 中所述,如果您使用 Ubuntu 和 PHP 的多个替代安装,您可以执行以下操作: