Ошибка установки Linux Drush: неопределенная константа класса 'MYSQL_ATTR_SSL_CA' в phar: ///usr/local/bin/drush/lib/Drush/Sql/Sqlmysql.php, строка 56

11

Я попытался установить Drush с помощью обоих методов, перечисленных в документации по drush.org. Я думаю, что они могут конфликтовать друг с другом, если это возможно.

Когда я запускаю composer global require drush/drushвсе компоненты появляются для правильной установки. Однако, когда я перехожу на сайт Drupal (используя XAMPP, / opt / lampp / htdocs / sitefolder) и запускаю, drush statusя получаю следующую ошибку:

Неустранимая ошибка PHP: неопределенная константа класса 'MYSQL_ATTR_SSL_CA' в phar: ///usr/local/bin/drush/lib/Drush/Sql/Sqlmysql.php в строке 56 Команда Drush прервана ненормально из-за неисправимой ошибки.
[ошибка] Ошибка: неопределенная константа класса 'MYSQL_ATTR_SSL_CA' в phar: ///usr/local/bin/drush/lib/Drush/Sql/Sqlmysql.php, строка 56

У меня есть следующая строка в моем ~ / .bashrc:

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

К сожалению, я не знаю, как устранить неполадки здесь, так как не представляется простым способом удалить Drush с помощью основного метода ( http://docs.drush.org/en/master/install/ ), который не похоже на работу для меня. composer global remove drush/drushдействительно работает успешно.

Заранее спасибо.

Крис Бауэр
источник
Забавно, вчера я опубликовал похожую ветку и удалил ее после того, как один из пользователей сказал мне, что это ошибка.
JohnDoea
Я сообщил об этом как об ошибке в Drush github. Вы используете WSL? Произошло со мной в WSL, но не в Ubuntu.
JohnDoea

Ответы:

20

В моем случае не все пакеты PHP сделали это, хотя Ubuntu обновился до 16.04 (который теперь запускает PHP 7 по умолчанию). Мне нужно было добавить недостающий, а затем 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

На этом пробил немного кроличьей норы, но я думаю, что проблема была связана с подключением к drush для правильной версии mysql. Нужна версия XAMPP, а не моя локальная версия linux. Добавление этих двух строк в ~ / .bashrc помогло:

export DRUSH_PHP=/opt/lampp/bin/php

export PATH=$PATH:/opt/lampp/bin
Крис Бауэр
источник
0

У меня была такая же проблема на Fedora 25. Я обновил php 5.6.32 с 5,60,30 и пренебрег переключателем в 32-й версии.

Выполнение php -m показало, что 5.6.32 не имеет модуля "pdo_mysql". Так что я вернулся к 5.6.30, в котором был скомпилирован этот модуль, пока я не смогу отладить компиляцию 5.6.32.

после этого изменения Drush 8 работал просто отлично.

jamesd
источник
0

Убедитесь, что у вас есть самые последние расширения для вашей версии PHP. Вы можете найти список основных элементов, которые вы должны установить в комментариях на сайте документации PHP при обновлении до 7.1.

Они рекомендуют бежать: 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в первый раз. Для разных версий просто выключите его соответствующим образом. Большинство из них, вероятно, одинаковы.

Надеюсь, что это помогает кому-то.

Фэй Лорен
источник