ข้อผิดพลาดในการติดตั้ง 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

ลดลงไปเล็กน้อยจากช่องกระต่ายในนี้ แต่ฉันเชื่อว่าปัญหาที่เกี่ยวข้องกับการเชื่อมต่อกับรุ่นที่เหมาะสมของ 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เป็นครั้งแรก สำหรับรุ่นอื่น ๆ เพียงแค่ปิดสวิตช์ตามความเหมาะสม ส่วนใหญ่มีแนวโน้มเหมือนกัน

หวังว่าจะช่วยใครซักคน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.