संगीतकार की त्रुटि स्थापित करें - ext_curl की आवश्यकता होती है जब यह वास्तव में सक्षम होता है


187

मैं संगीतकार के साथ Facebook PHP SDK स्थापित करने की कोशिश कर रहा हूं। यही मुझे मिलता है

$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

    Problem 1
        - Installation request for facebook/php-sdk dev-master -> satisfiable by facebook/php-sdk[dev-master].
        - facebook/php-sdk dev-master requires ext-curl * -> the requested PHP extension curl is missing from your system.

समस्या यह है, मेरे पास कर्ल एक्सटेंशन सक्षम है (php.ini में असंगत)। जब मैं दौड़ता हूं phpinfo(), तो यह कहता है कि यह सक्षम है। केवल मेरे पास यह है कि जब मैं दौड़ता हूं $ php -m, तो 'कर्ल' लाइन गायब होती है, लेकिन मुझे नहीं पता कि इसके बारे में क्या करना है।

मेरे पास Win8 पर 2.4 है और मैं cmd.exe में संगीतकार चला रहा हूं।


5
"Php -i | grep php.ini" को यह सुनिश्चित करने के लिए चलाएं कि आप PHP के लिए सही ini फ़ाइल का संपादन कर रहे हैं?
Danack

3
संगीतकार वर्तमान में एक्सटेंशन के लिए चल रहे PHP से पूछेगा, जो सर्वर संस्करण नहीं, बल्कि PHP का कमांड लाइन संस्करण है। यदि THAT PHP में कर्ल एक्सटेंशन नहीं है, तो यह काम नहीं करेगा। यह संभवतः कम्पोज़र के वर्तमान कार्यान्वयन की कमी है, क्योंकि दूरस्थ पैकेजों को हथियाने के लिए एक्सटेंशन की आवश्यकता नहीं होती है, और पैकेज हड़पने के लिए उपयोग किया जाने वाला सर्वर चीजों को निष्पादित करने के लिए उपयोग किया जाने वाला सर्वर नहीं होना चाहिए।
स्वेन

जवाबों:


388

यह आपके सिस्टम में स्थापित लाइब्रेरी php5-curl नहीं होने के कारण होता है,

उबंटू में इसके सिंपल रन डाउन लाइन कोड, Xamp पर आपके मामले में Xamp प्रलेखन पर एक नज़र डालें

sudo apt-get install php5-curl

जो कोई भी php7.0 का उपयोग करता है

sudo apt-get install php7.0-curl

उन लोगों के लिए जो php7.1 का उपयोग करते हैं

sudo apt-get install php7.1-curl

उन लोगों के लिए जो php7.2 का उपयोग करते हैं

sudo apt-get install php7.2-curl

उन लोगों के लिए जो php7.3 का उपयोग करते हैं

sudo apt-get install php7.3-curl

या बस अपने संस्करण द्वारा स्थापित करने के लिए नीचे कमांड चलाएं:

sudo apt-get install php-curl

10
सवाल के लेखक विंडोज चल रहा है। विंडोज डेबियन पर आधारित नहीं है।
ह्युर्टानिक्स

3
@huertanix उपयोगकर्ता की प्रणाली चालू होने के बावजूद, प्रश्न त्रुटि है क्योंकि कर्ल लाइब्रेरी उस सिस्टम पर स्थापित नहीं है जो संगीतकार त्रुटि का कारण बन सकता है, जो मैं इंगित करता हूं वह उपयोगकर्ता को स्पष्ट करने के लिए सिर्फ एक उदाहरण है कि इसे कैसे ठीक किया जाए।
एड्रियानो रोज़ा

3
ubuntu 16 php 5.6 के साथ आप का उपयोग करना चाहिए sudo apt-get php5.6-कर्ल स्थापित
बराक

4
इस "
सूदो

2
php-curl एक मेटा-पैकेज है जो php संस्करण से समाधान को स्वतंत्र बनाता है। तो "sudo apt-get install php-curl" सार्वभौमिक उत्तर है
मैक्स

113

इसने मेरे लिए काम किया: http://ubuntuforums.org/showthread.php?t=1519176

कमांड का उपयोग करके कंपोजर स्थापित करने के बाद curl -sS https://getcomposer.org/installer | phpबस sudo apt-get updateफिर से कर्ल को फिर से इंस्टॉल करें sudo apt-get install php5-curl। तब संगीतकार की स्थापना प्रक्रिया काम करनी चाहिए ताकि आप अंततः php composer.phar installअपने कंपोज़र.जॉन फ़ाइल में सूचीबद्ध निर्भरता प्राप्त कर सकें।


मैंने हमेशा संस्थापन विधि के कारण संगीतकार से परहेज किया है, इससे मेरी अनिच्छा की पुष्टि होती है।
MrYellow

@ क्या आप पैकेज / निर्भरता प्रबंधक का उपयोग करते हैं? संगीतकार की स्थापना विधि में क्या गलत है?
वीरोन

26

जैसा कि Danack ने टिप्पणियों में कहा, 2 php.ini फाइलें हैं। मैंने अपाचे फ़ोल्डर में एक में कर्ल एक्सटेंशन के साथ लाइन को अनइंस्टॉल किया, जो वेब सर्वर द्वारा उपयोग किया जाने वाला php.ini है।

दूसरी ओर, संगीतकार कंसोल के लिए php का उपयोग करता है जो एक पूरी अलग कहानी है। उस प्रोग्राम के लिए Php.ini फाइल Apache फोल्डर में एक नहीं है, लेकिन यह PHP फोल्डर में है और मुझे इसमें भी लाइन को अनकंफर्ट करना था। फिर मैंने इंस्टॉलेशन फिर से चलाया और यह ठीक था।


26

उदाहरण के लिए php7 रन पर:

> sudo apt-get install php-curl
> sudo apt-get install php-mbstring

हर गुम एक्सटेंशन के लिए। फिर:

> sudo apt-get update

और अंत में (परियोजना के मूल फ़ोल्डर में):

> composer install

11

मैं ड्रॉपबॉक्स एसडीके को स्थापित करने की कोशिश में एक ही मुद्दे में भाग गया।

CURL वास्तव में मेरे सिस्टम पर सक्षम था, लेकिन इसका मतलब था wp \ bin \ Apache फ़ोल्डर में php.ini।

मुझे बस wp \ bin \ php में स्थित php.ini को मैन्युअल रूप से एडिट करना extension=php_curl.dllथा, लाइन को अनकम्प्लिमेंट करना, वैंप को रीस्टार्ट करना और यह पूरी तरह से काम करता था।

क्यों उन 2 php.ini हैं और केवल एक का उपयोग किया जाता है अभी भी मेरे लिए एक रहस्य है ...

आशा है कि यह किसी के लिए मददगार है!


एक php.ini का उपयोग Apache के भीतर WAMP द्वारा किया जाता है और दूसरे का उपयोग PHP वेब सर्वर में इस तरह से शुरू करने पर किया जाता है: $ php -S localhost:8000कंसोल में
याहया उद्दीन

शुक्रिया यार, यह पूरी तरह से काम करता है !! यह न समझें कि php_curl की जाँच क्यों की जाती है और ;php.ini फ़ाइल में ...
w3spi

10

मुझे PHP5.6 में अपग्रेड करने के बाद यह समस्या थी। मेरा जवाब एड्रियानो के समान है, सिवाय इसके कि मुझे दौड़ना पड़े:

sudo apt-get install php5.6-curl

"5.6" पर ध्यान दें। Php5- कर्ल स्थापित करना मेरे लिए काम नहीं आया।


5

Https://github.com/composer/composer/issues/2119 के अनुसार आप अपने स्थानीय composer.jsonको यह बताने के लिए विस्तारित कर सकते हैं कि यह एक्सटेंशन प्रदान करता है (जो वास्तव में ऐसा नहीं करता है - इसलिए आपको सार्वजनिक रूप से अपना पैकेज प्रकाशित नहीं करना चाहिए, केवल इसे आंतरिक रूप से उपयोग करें)।


अजीब है, यह कैसे काम करता है? क्या आपका मतलब यह है कि संगीतकार एक्सटेंशन को खुद लोड करता है?
पचेरियर

संगीतकार पहले सामान की एक सूची बनाता है जो मौजूद होना चाहिए, और फिर उस सामान की खोज करता है जो इस आवश्यकता की सूची को संतुष्ट करता है। बस स्थापित PHP एक्सटेंशन सूची में एक प्रविष्टि है जो आवश्यकताओं को पूरा करने के लिए उपलब्ध है। संकुल जो provideकि PHP एक्सटेंशन के समान नाम का पैकेज है, आवश्यकताओं को भी पूरा करेगा, क्योंकि आवश्यक और मौजूदा सामान की तुलना करने के चरण में, लाइब्रेरी पैकेज के नाम की तरह ही एक एक्सटेंशन भी एक स्ट्रिंग है।
स्वेग


2

जब मैं कुछ निर्भरता स्थापित करने के लिए संगीतकार प्राप्त करने की कोशिश कर रहा था तो मैं एक समान मुद्दे पर भाग गया। यह पता चला है कि। Wamp के मेरे संस्करण के साथ संघर्ष हुआ था, मैं 64 बिट विंडोज के साथ अनुमान लगा रहा हूं।

इस url ने कर्ल dll तय किए हैं: http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/

उस अनुभाग पर स्क्रॉल करें जो कहता है: फिक्स्ड कर्ल एक्सटेंशन्स।

मैंने "php_curl-5.4.3-VC9-x64.zip" डाउनलोड किया। मैं सिर्फ wamp / bin / php / php5.4.3 / dll के साथ dll को ओवरलोड करता हूं जो dll के साथ जिप फाइल और कंपोजर में फिर से काम करता था।

मैं 64 बिट विंडोज 8 चला रहा हूं।

उम्मीद है की यह मदद करेगा।


2

जो कोई भी विंडोज पर इस मुद्दे का सामना करता है, उसके लिए मुझे Google पर अपना जवाब बिल्कुल नहीं मिल रहा है। मैंने बस कोशिश की कि कंपोज़र को एक्सटर्नल-कर्ल की आवश्यकता हो और यह काम करे। वैकल्पिक रूप से अपने कंपोजर में निम्नलिखित जोड़ें। json फ़ाइल:

"require": {
"ext-curl": "^7.3"
}


1

मेरे पास आर्कलिनक्स है जो php 7.2 के साथ है, जिसमें कर्ल एकीकृत है, इसलिए कॉन्फ़िगरेशन वूडू की कोई भी मात्रा संगीतकार को एक्स-कर्ल नहीं दिखा पाएगी, जिसे PHP देख सकता था और खुशी के साथ काम कर सकता था। आसपास काम करने के लिए --ignore-platform-reqs के साथ संगीतकार का उपयोग करना है।

उदाहरण के लिए संगीतकार अद्यतन --ignore-platform-reqs

संदर्भ = https://github.com/composer/composer/issues/1426


1

नीचे स्निपेट का उपयोग करके php5- कर्ल स्थापित करने का प्रयास करें।

sudo apt-get install php5-curl

अगर यह कोड im के नीचे काम करने की कोशिश नहीं करेगा यकीन है कि यह ठीक काम करेगा।

sudo apt-get install php-curl

मेरे लिए यह काम किया ... ऑल द बेस्ट :)


sudo apt-get install php-curl, मेरे लिए ubuntu पर काम किया
अधिकतम

0

मेरे मामले में, मैं PHP5 से PHP7 में चला गया और मुझे यह त्रुटि मिली, बस अपने /bin/php/php7/php.ini पर जाएं, फिर विस्तार एक्सटेंशन = php_curl.dll और अपने सर्वर को पुनरारंभ करें, अपने कंपोज़र को फिर से चलाएँ।


0

यकीन नहीं है कि लिनक्स कमांड के साथ एक उत्तर को विंडोज से संबंधित प्रश्न के लिए इतने सारे वोट क्यों मिलेंगे, लेकिन फिर भी ...

यदि phpinfo()कर्ल को सक्षम के रूप में दिखाया जाता है, फिर भी php -mऐसा नहीं होता है, तो इसका मतलब है कि आपके पास संभवतः php-cli.iniभी है। चलाएं php -iऔर देखें कि कौन सी आईएनआई फ़ाइल भरी हुई है। यदि यह अलग है, तो इसे अलग करें और सीएलआई आईएनआई फ़ाइल में प्रतिबिंबित करें और अंतर करें। तब आपको जाना अच्छा होना चाहिए।

Btw डाउनलोड करें और cmd.exe के बजाय Git Bash का उपयोग करें!

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