Lỗi cài đặt Linux Drush: Hằng số lớp không xác định 'MYSQL_ATTR_SSL_CA' trong phar: ///usr/local/bin/drush/lib/Drush/Sql/Sqlmysql.php, dòng 56


11

Tôi đã thử cài đặt Drush với cả hai phương pháp được liệt kê trong tài liệu drush.org. Tôi nghĩ rằng họ có thể xung đột với nhau nếu điều đó có thể.

Khi tôi chạy composer global require drush/drushtất cả các thành phần xuất hiện để cài đặt chính xác. Tuy nhiên, khi tôi thay đổi thành một trang web Drupal (Sử dụng XAMPP, / opt / lampp / htdocs / sitefolder) và drush statustôi gặp lỗi sau:

Lỗi nghiêm trọng của PHP: Hằng số lớp không xác định 'MYSQL_ATTR_SSL_CA' trong phar: ///usr/local/bin/drush/lib/Drush/Sql/Sqlmysql.php trên dòng 56 Lệnh Drush bị chấm dứt bất thường do lỗi không thể phục hồi.
[lỗi] Lỗi: Hằng số lớp không xác định 'MYSQL_ATTR_SSL_CA' trong phar: ///usr/local/bin/drush/lib/Drush/Sql/Sqlmysql.php, dòng 56

Tôi có dòng sau trong ~ / .bashrc:

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

Thật không may, tôi không biết cách khắc phục sự cố từ đây, vì dường như không có cách nào dễ dàng để gỡ cài đặt Drush thông qua phương thức chính ( http://docs.drush.org/en/master/install/ ), mà dường như không làm việc cho tôi. composer global remove drush/drushkhông xuất hiện để chạy thành công

Cảm ơn trước.


Thật buồn cười, hôm qua tôi đã xuất bản một chủ đề tương tự và xóa nó sau khi một trong những người dùng nói với tôi đó là một lỗi.
JohnDoea

Tôi đã báo cáo đó là lỗi trong Drush github. Bạn đang sử dụng WSL? Đã xảy ra với tôi trong WSL nhưng không phải trong Ubuntu.
JohnDoea

Câu trả lời:


20

Trong trường hợp của tôi, không phải tất cả các gói PHP đã tạo ra nó mặc dù Ubuntu nâng cấp lên 16.04 (hiện đang chạy PHP 7 theo mặc định). Tôi cần thêm cái còn thiếu, và rồi Drush bắt đầu hoạt động trở lại:

sudo apt install php-mysql

Hoặc cho người dùng php5

sudo apt install php5-mysql 

trên các bản phân phối Ubuntu / Debian gần đây.

Đối với PHP 7.1:

sudo apt install php7.1-mysql

Đối với PHP 7.2:

sudo apt install php7.2-mysql

Bạn có thể tìm kiếm phiên bản của mình bằng cách này:

apt-cache search php-mysql

1

Đã đi xuống một chút lỗ thỏ trên cái này, nhưng tôi tin rằng vấn đề này có liên quan đến việc drush kết nối với phiên bản mysql thích hợp. Nó cần phiên bản XAMPP, không phải phiên bản linux cục bộ của tôi. Thêm hai dòng này vào ~ / .bashrc đã giúp:

export DRUSH_PHP=/opt/lampp/bin/php

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

0

có cùng một vấn đề trên Fedora 25. tôi đã nâng cấp lên php 5.6.32 từ 5,60,30 và bỏ qua một công tắc trong biên dịch 32.

làm php -m cho thấy 5.6.32 bị bỏ qua để có mô-đun "pdo_mysql". Vì vậy, tôi đã quay trở lại 5.6.30 có mô-đun đó được biên dịch, cho đến khi tôi có thể gỡ lỗi trình biên dịch 5.6.32.

Sau khi thay đổi, Drush 8 hoạt động tốt.


0

Đảm bảo rằng bạn có các tiện ích mở rộng cập nhật nhất cho phiên bản PHP của mình. Bạn có thể tìm thấy một danh sách các mục cơ bản bạn nên cài đặt trong các nhận xét trên trang tài liệu PHP theo bản nâng cấp lên 7.1.

Họ khuyên bạn nên chạy: 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

Nếu bạn không, ít nhất bạn sẽ gặp vấn đề với mbopes vì ​​đây là một phụ thuộc cốt lõi. Đây cũng là một giải pháp tiềm năng cho lỗi quá phổ biến "easyrdf / easyrdf 0.9.1 yêu cầu ext-mb chuỗi * -> mb chuỗi mở rộng PHP được yêu cầu bị thiếu khỏi hệ thống của bạn." khi chúng tôi chạy composer installlần đầu tiên Đối với các phiên bản khác nhau, chỉ cần chuyển nó ra khi thích hợp. Hầu hết trong số họ có khả năng giống nhau.

Hy vọng rằng sẽ giúp được ai đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.