Помилка установки 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

Я повідомив про це як про помилку в Github Drush. Ви використовуєте WSL? Сталося зі мною в WSL, але не в Ubuntu.
JohnDoea

Відповіді:


20

У моєму випадку, не всі пакети PHP зробили це, хоча оновлення Ubuntu до 16.04 (тепер за замовчуванням працює PHP 7). Мені потрібно було додати відсутню, і тоді Друш знову почав працювати:

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. Я перейшов до php 5.6.32 з 5,60,30 і знехтував комутатором у компіляції 32.

виконання php -m показало, що 5.6.32 знехтував мати модуль "pdo_mysql". Тому я повернувся до 5.6.30, у якому цей модуль зібраний, поки я не можу налагодити компіляцію 5.6.32.

після цієї зміни Drush 8 спрацював чудово.


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вперше. Для різних версій просто вимкніть його, як годиться. Більшість із них, ймовірно, однакові.

Сподіваюся, що хтось допомагає.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.