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正常に実行されているようです。

前もって感謝します。


その面白い、昨日、私は同様のスレッドを公開し、ユーザーの1人がバグを教えてくれたので削除しました。
-JohnDoea

Drush githubのバグとして報告しました。WSLを使用していますか?WSLで起こったが、Ubuntuではなかった。
-JohnDoea

回答:


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の適切なバージョンに接続することに関連していると思います。ローカルLinuxバージョンではなく、XAMPPバージョンが必要です。〜/ .bashrcに次の2行を追加すると役立ちました。

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.32コンパイルをデバッグできるようになるまで、そのモジュールがコンパイルされた5.6.30に戻りました。

この変更後、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がコア依存関係であるため、少なくともmbstringの問題が発生します。これは、あまりにも一般的なエラー「easyrdf / easyrdf 0.9.1にはext-mbstringが必要*->要求されたPHP拡張mbstringがシステムにありません」の潜在的な解決策でもあります。composer install初めて実行したとき。異なるバージョンの場合は、必要に応じて切り替えてください。それらのほとんどはおそらく同じです。

それが誰かを助けることを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.