लिनक्स ड्रश त्रुटि स्थापित करें: फ़ार में अनिर्धारित वर्ग निरंतर 'MYSQL_ATTR_SSL_CA': ///usr/local/bin/drush/lib/Drush/Sql/Sqlmnql.php, पंक्ति 56


11

मैं drush.org प्रलेखन में सूचीबद्ध दोनों विधियों के साथ ड्रश स्थापित करने की कोशिश की। मुझे लगता है कि यदि संभव हो तो वे एक-दूसरे के साथ परस्पर विरोधी हो सकते हैं।

जब मैं composer global require drush/drushसभी घटकों को सही ढंग से स्थापित करने के लिए दिखाई देते हैं। हालाँकि जब मैं एक Drupal साइट (XAMPP, / opt / lampp / htdocs / sitefolder का उपयोग करके) में बदलता drush statusहूं और मुझे निम्नलिखित त्रुटि मिलती है:

PHP घातक त्रुटि: फ़ार में अनिर्धारित वर्ग स्थिर 'MYSQL_ATTR_SSL_CA': ///usr/local/bin/drush/lib/Drush/Sql/Sqlmyshl.php ऑन लाइन 56 Drush कमांड असामान्य रूप से एक अपरिवर्तनीय त्रुटि के कारण समाप्त हुई।
[त्रुटि] त्रुटि: फ़ार में अनिर्धारित वर्ग निरंतर 'MYSQL_ATTR_SSL_CA': ///usr/local/bin/drush/lib/Drush/Sql/Sqlmyshl.php, पंक्ति 56

मेरी ~ / .bashrc में निम्न पंक्ति है:

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

दुर्भाग्य से मैं नहीं जानता कि यहाँ से समस्या निवारण कैसे हो, क्योंकि मुख्य विधि के माध्यम से ड्रूश को अनइंस्टॉल करने का एक आसान तरीका नहीं है ( http://docs.drush.org/en/master/install/ ), जो मेरे लिए काम नहीं कर रहा था। composer global remove drush/drushसफलतापूर्वक चलाने के लिए प्रकट होता है।

अग्रिम में धन्यवाद।


इसका मजाकिया, कल मैंने एक समान धागा प्रकाशित किया और उपयोगकर्ताओं द्वारा मुझे एक बग बताने के बाद इसे हटा दिया।
जॉनडो

मैंने इसे ड्रश गितुब में बग के रूप में रिपोर्ट किया। क्या आप WSL का उपयोग कर रहे हैं? WSL में नहीं बल्कि Ubuntu में मेरे पास आया।
JohnDoea

जवाबों:


20

मेरे मामले में, सभी PHP पैकेजों ने इसे नहीं बनाया, हालांकि उबंटू 16.04 में नवीनीकृत हुआ (जो अब डिफ़ॉल्ट रूप से PHP 7 चलाता है)। मुझे लापता को जोड़ने की जरूरत थी, और फिर द्रुश ने फिर से काम करना शुरू कर दिया:

sudo apt install php-mysql

या php5 उपयोगकर्ताओं के लिए

sudo apt install php5-mysql 

हाल ही में उबंटू / डेबियन वितरण पर।

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 संस्करण की आवश्यकता है, न कि मेरे स्थानीय लिनक्स संस्करण की। इन दो पंक्तियों को ~ / .bashrc में जोड़ने से मदद मिली:

export DRUSH_PHP=/opt/lampp/bin/php

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

0

Fedora 25 पर भी यही समस्या थी। मैंने 5,60,30 से 5.6.32 में php को अपग्रेड किया था और 32 के संकलन में एक स्विच को उपेक्षित किया था।

php -m करने से पता चला है कि 5.6.32 मॉड्यूल "pdo_mysql" के लिए उपेक्षित है। इसलिए मैंने वापस 5.6.30 पर वापस लौटा है जिसमें उस मॉड्यूल को संकलित किया गया है, जब तक कि मैं 5.6.32 संकलन को डीबग नहीं कर सकता।

इस बदलाव के बाद 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 के साथ मुद्दों में बहुत कम से कम भाग लेंगे क्योंकि यह एक मुख्य निर्भरता है। यह सभी-बहुत-सामान्य त्रुटि के लिए एक संभावित समाधान भी है "easyrdf / easyrdf 0.9.1 के लिए पूर्व mbstring * की आवश्यकता है -> अनुरोधित PHP एक्सटेंशन mbstring आपके सिस्टम से गायब है।" जब हम composer installपहली बार दौड़ते हैं । विभिन्न संस्करणों के लिए, बस इसे उपयुक्त रूप में बदल दें। उनमें से ज्यादातर की संभावना एक ही है।

आशा है कि किसी की मदद करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.