Mar*_*mal 25 php mysql pdo laravel laravel-5
我在我的Ubuntu 14.04上有一个Laravel 5.4项目(VPS与Plesk 12.5.30).创建数据库并设置.env文件时,我运行了所需的信息php artisan migrate
并抛出了异常:
[Illuminate\Database\QueryException]
找不到驱动程序(SQL:select*from information_schema.tables where table_schema = pmaramaldb and table_name = migrations)[PDOException]
找不到驱动程序
我的.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árboldedependencias
Leyendolainformacióndeestado ... Hecho
php7.0-mysql已经是最新版本了.
0 actualizados,0seinstalará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árboldedependencias
Leyendolainformacióndeestado ... Hecho
php5-sqlite已经是最新版本了.
0 actualizados,0seinstalarán,0 para eliminar y 67 no actualizados.
Composer Dump-autoload解决方案:
它也没用.我试过了composer dump-autoload
,但没用.
运行命令后php -i
:
PDO
PDO支持=>已启用
PDO驱动程序=>
...
PHP Version => 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
İsm*_*urt 39
作为替代解决方案,请确保您已安装php7-mysql
尝试运行下面的命令
sudo apt install php7.0-mysql
Run Code Online (Sandbox Code Playgroud)
Dev*_*arb 21
同样的问题,ubuntu 17.10,Laravel 5.5.
$ sudo apt install php7.1-pdo php7.1-mysql
一个很好的快速修复,希望这有帮助
apo*_*fos 15
Apache使用的PHP与链接到命令行的PHP之间存在冲突.(更常见的是它应该诚实).
通常做的是:
which php
Run Code Online (Sandbox Code Playgroud)
这告诉您在命令行中运行时将预览哪个php.例如/usr/bin/php
mv /usr/bin/php /usr/bin/php.old
Run Code Online (Sandbox Code Playgroud)
然后将正确的PHP版本链接或复制到可执行路径:
ln -s /path/to/php/bin/php /usr/bin/php
Run Code Online (Sandbox Code Playgroud)
或以下也应该有效.
cp /path/to/php/bin/php /usr/bin/php
Run Code Online (Sandbox Code Playgroud)
如果您希望能够手动安装mods,还建议:
ln -s /path/to/php/bin/phpize /usr/bin/phpize
ln -s /path/to/php/bin/php-config /usr/bin/php-config
Run Code Online (Sandbox Code Playgroud)
这样,您的CLI将与您的Web服务器匹配.
doy*_*sto 10
我有同样的情景.我确实解决了以下问题:
1)在您的终端上输入
php --ini
这将输出您当前的php.ini配置文件路径.
2)使用vim或首选编辑器编辑php.ini.
vim /etc/php.ini
请注意/etc/php.ini是php.ini的路径文件.它可能在您的机器上有所不同.
3)find ; extension = php_pdo_mysql.dll并通过删除分号(;)取消注释
4)保存你的php.ini更改/ s
**5)重新启动Web服务器以应用更改
sudo systemctl重启apache2
**6)现在运行你的命令.
php工匠迁移
希望这对你有所帮助.
在 linux 中这样做
首先像这样检查你的php版本:
php -v
Run Code Online (Sandbox Code Playgroud)
例如,在您获得版本号后,我获得7.1然后像这样安装
sudo apt-get install php7.1-sqlite //for laravel testing with sqlite
sudo apt-get install php-mysql //for default mysql
sudo apt-get install php7.1-mysql //for version based mysql
sudo apt-get install php7.1-common //for other necessary package for php
Run Code Online (Sandbox Code Playgroud)
并且需要重启apache2
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)