Linux Drush install error: Konstanta kelas tak terdefinisi 'MYSQL_ATTR_SSL_CA' di phar: ///usr/local/bin/drush/lib/Drush/Sql/Sqlmysql.php, line 56

11

Saya mencoba menginstal Drush dengan kedua metode yang tercantum dalam dokumentasi drush.org. Saya pikir mereka mungkin saling bertentangan jika memungkinkan.

Ketika saya menjalankan composer global require drush/drushsemua komponen muncul untuk menginstal dengan benar. Namun ketika saya mengubah ke situs Drupal (Menggunakan XAMPP, / opt / lampp / htdocs / sitefolder) dan menjalankan drush statussaya mendapatkan kesalahan berikut:

PHP Fatal error: Konstanta kelas tak terdefinisi 'MYSQL_ATTR_SSL_CA' di phar: ///usr/local/bin/drush/lib/Drush/Sql/Sqlmysql.php pada baris 56 Perintah Drush diakhiri secara abnormal karena kesalahan yang tidak dapat dipulihkan.
[kesalahan] Kesalahan: Konstanta kelas yang tidak terdefinisi 'MYSQL_ATTR_SSL_CA' di phar: ///usr/local/bin/drush/lib/Drush/Sql/Sqlmysql.php, baris 56

Saya memiliki baris berikut di ~ / .bashrc saya:

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

Sayangnya saya tidak tahu cara memecahkan masalah dari sini, karena sepertinya tidak ada cara mudah untuk menghapus Drush melalui metode utama ( http://docs.drush.org/en/master/install/ ), yang sepertinya tidak bekerja untuk saya. composer global remove drush/drushtampaknya berhasil dijalankan.

Terima kasih sebelumnya.

Chris Bauer
sumber
Lucu, kemarin saya menerbitkan utas yang sama dan menghapusnya setelah salah satu pengguna memberi tahu saya ini bug.
JohnDoea
Saya melaporkannya sebagai bug di Drush github. Apakah Anda menggunakan WSL? Terjadi pada saya di WSL tetapi tidak di Ubuntu.
JohnDoea

Jawaban:

20

Dalam kasus saya, tidak semua paket PHP berhasil meskipun Ubuntu ditingkatkan ke 16,04 (yang sekarang menjalankan PHP 7 secara default). Saya perlu menambahkan yang hilang, dan kemudian Drush mulai bekerja lagi:

sudo apt install php-mysql

Atau untuk pengguna php5

sudo apt install php5-mysql 

pada distribusi Ubuntu / Debian yang terbaru.

Untuk PHP 7.1:

sudo apt install php7.1-mysql

Untuk PHP 7.2:

sudo apt install php7.2-mysql

Anda dapat mencari versi Anda menggunakan ini:

apt-cache search php-mysql
colan
sumber
1

Turun sedikit lubang kelinci yang satu ini, tapi saya percaya masalah ini terkait dengan drush menghubungkan ke versi mysql yang tepat. Perlu versi XAMPP, bukan versi linux lokal saya. Menambahkan dua baris ini ke ~ / .bashrc membantu:

export DRUSH_PHP=/opt/lampp/bin/php

export PATH=$PATH:/opt/lampp/bin
Chris Bauer
sumber
0

memiliki masalah yang sama pada Fedora 25. saya telah mengupgrade ke php 5.6.32 dari 5.60.30 dan mengabaikan switch dalam kompilasi 32.

melakukan php -m menunjukkan bahwa 5.6.32 mengabaikan memiliki modul "pdo_mysql". Jadi saya kembali ke 5.6.30 yang memiliki modul yang dikompilasi, sampai saya dapat men-debug kompilasi 5.6.32.

setelah perubahan ini Drush 8 bekerja dengan baik.

jamesd
sumber
0

Pastikan Anda memiliki ekstensi terkini untuk versi PHP Anda. Anda dapat menemukan daftar barang-barang dasar yang harus Anda pasang di komentar di situs dokumentasi PHP di bawah peningkatan ke 7.1.

Mereka merekomendasikan berjalan: 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

Jika tidak, paling tidak Anda akan mengalami masalah dengan mbstring karena ini adalah ketergantungan inti. Ini juga merupakan solusi potensial untuk kesalahan yang terlalu umum "easyrdf / easyrdf 0.9.1 membutuhkan ext-mbstring * -> ekstensi PHP yang diminta mbstring tidak ada di sistem Anda." ketika kita berlari composer installuntuk pertama kalinya. Untuk versi yang berbeda, cukup aktifkan sesuai kebutuhan. Sebagian besar dari mereka kemungkinan sama.

Semoga itu bisa membantu seseorang.

Fei Lauren
sumber