【发布时间】:2017-08-12 01:45:33
【问题描述】:
我的 Ubuntu 14.04(带有 Plesk 12.5.30 的 VPS)上有一个 Laravel 5.4 项目。创建数据库并使用所需信息设置 .env 文件后,我运行php artisan migrate 并引发异常:
[Illuminate\Database\QueryException]
找不到驱动程序(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 安装解决方案:**
我也尝试过question link 说: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 显示的版本是:
user@server: ~/path$ php -v
PHP 5.6.30-1+deb.sury.org~trusty+1 (cli)
版权所有 (c) 1997-2016 PHP 组
Zend Engine v2.6.0,版权所有 (c) 1998-2016 Zend Technologies
Zend OPcache v7.0.6-dev,版权所有 (c) 1999-2016,Zend Technologies
【问题讨论】:
-
看起来您已经采取了通常的步骤。是时候仔细检查一些基础知识了:您是否可能将 laravel 设置为使用另一种数据库类型、mssql 或 postgresql?服务器上是否有混合的 php 版本(我认为 ubuntu 14.04 默认使用 php5.x)
-
可能值得在 CLI 中执行
php -i以确保它与基于 Web 的匹配。有时,您在 CLI 上获得的 PHP 版本可能与 apache 中的不同。 -
hmm...另一个想法:如果我正确理解该过程,则错误发生在 php cli 调用中。您在链接的问题中看到 leith 的答案了吗? php-cli使用了另一个ini文件,可能是pdo驱动没有激活
-
@Maramal 最好的办法是做
which php找到当前运行的那个,删除它并在您的/usr/bin或其他路径目录中链接PHP 7 二进制文件。您当前的 CLI php 没有任何 PDO 驱动程序 -
@Maramal 尝试
mv /usr/bin/php /usr/bin/php.old然后ln -s /path/to/php/bin/php /usr/bin/php不知道您在哪里安装了 PHP,尽管您可能需要查找它(phpinfo 可能会说它在哪里)
标签: php mysql laravel pdo laravel-5