Linux Drush安装错误:phar:///usr/local/bin/drush/lib/Drush/Sql/Sqlmysql.php,第56行中的未定义类常量'MYSQL_ATTR_SSL_CA'


11

我尝试使用drush.org文档中列出的两种方法安装Drush。我认为如果可能的话,他们可能会互相冲突。

当我运行时,composer global require drush/drush所有组件似乎都可以正确安装。但是,当我切换到Drupal站点(使用XAMPP,/ opt / lampp / htdocs / sitefolder)并运行时drush status,出现以下错误:

PHP致命错误:第56行上的phar:///usr/local/bin/drush/lib/Drush/Sql/Sqlmysql.php中未定义的类常量'MYSQL_ATTR_SSL_CA'由于不可恢复的错误而异常终止。
[错误]错误:phar:///usr/local/bin/drush/lib/Drush/Sql/Sqlmysql.php,第56行中的未定义类常量'MYSQL_ATTR_SSL_CA'

我的〜/ .bashrc中确实包含以下行:

export PATH="$HOME/.composer/vendor/bin:$PATH"

不幸的是,我不知道如何从这里进行故障排除,因为似乎没有一种通过主要方法(http://docs.drush.org/en/master/install/)卸载Drush的简便方法。似乎不适合我。composer global remove drush/drush确实运行成功。

提前致谢。


它很有趣,昨天我发布了一个类似的线程,并在一个用户告诉我它是一个错误之后将其删除。
JohnDoea

我在Drush github中将其报告为bug。您正在使用WSL吗?在WSL中发生于我,但在Ubuntu中却没有。
JohnDoea

Answers:


20

就我而言,尽管Ubuntu升级到16.04(并非默认情况下现在运行PHP 7),但并不是所有的PHP软件包都能实现。我需要添加缺少的一个,然后Drush重新开始工作:

sudo apt install php-mysql

或针对php5用户

sudo apt install php5-mysql 

在最近的Ubuntu / Debian发行版中。

对于PHP 7.1:

sudo apt install php7.1-mysql

对于PHP 7.2:

sudo apt install php7.2-mysql

您可以使用以下方法搜索您的版本:

apt-cache search php-mysql

1

在这个上走了一点兔子洞,但是我相信这个问题与匆忙连接到正确版本的mysql有关。它需要XAMPP版本,而不是我的本地linux版本。将这两行添加到〜/ .bashrc中有助于:

export DRUSH_PHP=/opt/lampp/bin/php

export PATH=$PATH:/opt/lampp/bin

0

在Fedora 25上也有同样的问题。我已经从5,60,30升级到php 5.6.32,而忽略了32的编译开关。

执行php -m表示5.6.32被忽略具有模块“ pdo_mysql”。所以我回到了已编译该模块的5.6.30,直到可以调试5.6.32编译为止。

进行此更改后,Drush 8正常运行。


0

确保您拥有适用于您的PHP版本的最新扩展。在升级到7.1 的PHP文档站点上的注释中,您可以找到应安装的基本项目的列表。

他们建议运行: sudo apt-get install php7.1 php7.1-cli php7.1-common libapache2-mod-php7.1 php7.1-mysql php7.1-fpm php7.1-curl php7.1-gd php7.1-bz2 php7.1-mcrypt php7.1-json php7.1-tidy php7.1-mbstring php-redis php-memcached

如果您不这样做,那么至少会遇到mbstring的问题,因为这是核心依赖性。对于所有常见错误,“ easyrdf / easyrdf 0.9.1需要ext-mbstring *->系统中缺少所请求的PHP扩展名mbstring”,这也是一种可能的解决方案。当我们composer install第一次跑步时。对于不同的版本,只需将其适当地关闭即可。他们大多数可能是相同的。

希望能对某人有所帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.