ข้อผิดพลาดในการติดตั้งนักแต่งเพลง - ต้องใช้ ext_curl เมื่อเปิดใช้งานจริง


188

ฉันพยายามติดตั้ง Facebook PHP SDK ด้วย Composer นี่คือสิ่งที่ฉันได้รับ

$ 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.

ปัญหาคือฉันเปิดใช้งานส่วนขยาย curl (ไม่ใส่เครื่องหมายข้อคิดเห็นใน php.ini) เมื่อฉันวิ่งphpinfo()มันก็บอกว่ามันเปิดใช้งาน เงื่อนงำเดียวที่ฉันมีก็คือเมื่อฉันเรียกใช้$ php -mบรรทัด 'curl' หายไป แต่ฉันไม่รู้จะทำอย่างไร

ฉันมี wamp 2.4 บน Win8 และฉันใช้งานผู้แต่งใน cmd.exe


5
เรียกใช้ "php -i | grep php.ini" เพื่อให้แน่ใจว่าคุณกำลังแก้ไขไฟล์ ini ที่ถูกต้องสำหรับ PHP?
Danack

3
นักแต่งเพลงจะถาม PHP ที่กำลังรันอยู่ในปัจจุบันสำหรับส่วนขยายซึ่งเป็นเวอร์ชันบรรทัดคำสั่งของ PHP ไม่ใช่เวอร์ชันของเซิร์ฟเวอร์ ถ้า That PHP ไม่มีส่วนขยายของ curl มันจะไม่ทำงาน นั่นอาจเป็นข้อบกพร่องของการใช้งานปัจจุบันของนักแต่งเพลงเพราะการคว้าแพ็คเกจระยะไกลไม่จำเป็นต้องมีส่วนขยายและเซิร์ฟเวอร์ที่ใช้ในการคว้าแพคเกจต้องไม่เป็นเซิร์ฟเวอร์ที่ใช้ในการดำเนินการต่างๆ
สเวน

คำตอบ:


390

ปัญหานี้เกิดขึ้นเนื่องจากคุณไม่มีไลบรารี่ php5-curl ติดตั้งอยู่ในระบบของคุณ

บน Ubuntu มันใช้งานง่ายเพียงแค่เรียกใช้รหัสบรรทัดด้านล่างในกรณีของคุณบน 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
ผู้เขียนคำถามดูเหมือนว่าจะใช้ Windows Windows ไม่ได้ขึ้นกับ Debian
huertanix

3
@ huertanix แม้จะมีระบบของผู้ใช้ที่ทำงานอยู่ข้อผิดพลาดของคำถามคือเนื่องจากห้องสมุด curl ไม่ได้ติดตั้งบนระบบซึ่งอาจทำให้เกิดข้อผิดพลาดของนักแต่งเพลงสิ่งที่ฉันชี้ให้เห็นเป็นเพียงตัวอย่างเพื่อชี้แจงให้ผู้ใช้ทราบถึงวิธีการแก้ไข
Adriano Rosa

3
ที่ ubuntu 16 พร้อม php 5.6 คุณควรใช้ sudo apt-get install php5.6-curl
barak

4
แก้ปัญหาด้วย "sudo apt-get install php-curl" นี้
vnchopra

2
php-curl เป็น meta-package ที่ทำให้การแก้ปัญหาเป็นอิสระจาก php version ดังนั้น "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รายการอ้างอิงในไฟล์ composer.json ของคุณได้


ฉันหลีกเลี่ยงนักแต่งเพลงเสมอเนื่องจากวิธีการติดตั้งนี่เป็นการยืนยันการลังเลของฉัน
MrYellow

@Mrellowellow ดังนั้นคุณใช้ package / พึ่งพาผู้จัดการอะไร เกิดอะไรขึ้นกับวิธีการติดตั้งของผู้แต่งเพลง?
Wirone

26

ดังที่ Danack กล่าวไว้ในความคิดเห็นมีไฟล์ php.ini 2 ไฟล์ ฉันไม่ใส่เครื่องหมายขีดกับส่วนขยาย curl ในโฟลเดอร์ Apache ซึ่งเป็น 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

ฉันพบปัญหาเดียวกันกับการพยายามติดตั้ง Dropbox SDK

CURL ถูกเปิดใช้งานในระบบของฉัน แต่สิ่งนี้แปลโดย php.ini ในโฟลเดอร์ wamp \ bin \ apache

ฉันแค่ต้องแก้ไข php.ini ที่อยู่ใน wamp \ bin \ php ด้วยตนเองโดยไม่ใส่เครื่องหมาย extension=php_curl.dllบรรทัดรีสตาร์ท Wamp และทำงานได้อย่างสมบูรณ์

ทำไมมีทั้งสอง php.ini และมีเพียงอันเดียวที่ใช้ยังคงเป็นปริศนาสำหรับฉัน ...

หวังว่ามันจะเป็นประโยชน์กับใครบางคน!


Apache หนึ่ง php.ini ถูกใช้งานภายใน WAMP และอีกอันหนึ่งถูกใช้เมื่อเริ่มสร้างเว็บเซิร์ฟเวอร์ PHP ในลักษณะนี้: $ php -S localhost:8000ในคอนโซล
Yahya Uddin

ขอบคุณคนที่ทำงานได้อย่างสมบูรณ์ !! ไม่เข้าใจว่าทำไม php_curl ถูกตรวจสอบและ;ไฟล์a ใน php.ini ...
w3spi

10

ฉันมีปัญหานี้หลังจากอัปเกรดเป็น PHP5.6 คำตอบของฉันคล้ายกับของ Adriano ยกเว้นว่าฉันต้องวิ่ง:

sudo apt-get install php5.6-curl

สังเกตเห็น "5.6" การติดตั้ง php5-curl ไม่ได้ผลสำหรับฉัน


5

ตามhttps://github.com/composer/composer/issues/2119คุณสามารถขยายท้องถิ่นของคุณcomposer.jsonให้ระบุว่าเป็นส่วนขยาย (ซึ่งไม่ได้ทำจริงๆ - นั่นเป็นเหตุผลที่คุณไม่ควรเผยแพร่แพคเกจของคุณต่อสาธารณะเท่านั้น ใช้ภายใน)


แปลกมันทำงานอย่างไร คุณหมายความว่าผู้แต่งโหลดส่วนขยายเองหรือไม่
Pacerier

นักแต่งเพลงสร้างรายการสิ่งที่ควรมีอยู่ก่อนแล้วค้นหาสิ่งที่เป็นไปตามรายการข้อกำหนดนี้ ติดตั้งส่วนขยาย PHP เพียงแค่รายการในรายการที่มีอยู่เพื่อตอบสนองความต้องการ แพ็คเกจที่provideแพ็คเกจที่มีชื่อเหมือนกับส่วนขยาย PHP จะตอบสนองความต้องการได้เนื่องจากในขั้นตอนการเปรียบเทียบสิ่งที่จำเป็นและที่มีอยู่ส่วนขยายนั้นเป็นเพียงสตริงเหมือนกับชื่อแพคเกจไลบรารี
สเวน


2

ฉันพบปัญหาที่คล้ายกันเมื่อพยายามรับผู้แต่งเพื่อติดตั้งการอ้างอิงบางอย่าง ปรากฎว่า. Wll เวอร์ชันที่ฉันใช้มีข้อขัดแย้งฉันเดาด้วย Windows 64 บิต

URL นี้ได้แก้ไขที่อยู่ของ curl: http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/

เลื่อนลงไปยังส่วนที่ระบุว่า: แก้ไขส่วนขยาย Curl

ฉันดาวน์โหลด "php_curl-5.4.3-VC9-x64.zip" ฉันเพิ่งเขียนทับ dll ภายในไดเรกทอรี wamp / bin / php / php5.4.3 / ext ด้วย dll ที่อยู่ในไฟล์ zip และนักแต่งเพลงทำงานอีกครั้ง

ฉันใช้ Windows 8 64 บิต

หวังว่านี่จะช่วยได้


2

สำหรับทุกคนที่พบปัญหานี้ใน Windows ฉันไม่สามารถหาคำตอบของฉันใน google เลย ฉันลองใช้นักแต่งเพลงต้องการ ext-curlและสิ่งนี้ใช้ได้ หรือเพิ่มสิ่งต่อไปนี้ในไฟล์ composer.json ของคุณ:

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


1

ฉันมี Archlinux ด้วย php 7.2 ซึ่งมี Curl รวมอยู่ด้วยดังนั้นจึงไม่มีการกำหนดค่า Voodoo ที่จะทำให้ Composer เห็น ext-curl ซึ่ง PHP สามารถดูและทำงานร่วมกับมันได้อย่างมีความสุข หลีกเลี่ยงการใช้ Composer ด้วย --ignore-platform-reqs

เช่นการปรับปรุงผู้แต่ง --ignore-platform-reqs

การอ้างอิง = https://github.com/composer/composer/issues/1426


1

ลองติดตั้ง php5-curl โดยใช้ตัวอย่างด้านล่าง

sudo apt-get install php5-curl

ถ้ามันไม่ทำงานลองรหัสด้านล่างแน่ใจว่ามันจะทำงานได้ดี

sudo apt-get install php-curl

สำหรับฉันมันทำงานได้ ... ทั้งหมดที่ดีที่สุด :)


sudo apt-get install php-curl, ทำงานให้ฉันบน Ubuntu
max

0

ในกรณีของฉันฉันย้ายจาก PHP5 เป็น PHP7 และฉันได้รับข้อผิดพลาดนี้เพียงไปที่ /bin/php/php7/php.ini จากนั้น uncomment extension = php_curl.dll และรีสตาร์ทเซิร์ฟเวอร์ของคุณทำการติดตั้งผู้แต่งเพลงของคุณใหม่


0

ไม่แน่ใจว่าทำไมคำตอบด้วยคำสั่ง Linux จะได้รับคะแนนโหวตจำนวนมากสำหรับคำถามที่เกี่ยวข้องกับ Windows แต่อย่างไรก็ตาม ...

หากphpinfo()การแสดง Curl เป็นเปิดใช้งาน แต่php -mไม่ได้หมายความว่าคุณอาจมีphp-cli.iniมากเกินไป เรียกใช้php -iและดูไฟล์ ini ที่โหลด ถ้ามันแตกต่างให้แยกมันและสะท้อนและความแตกต่างในไฟล์ CLI ini จากนั้นคุณควรจะไปดี

Btw ดาวน์โหลดและใช้ Git Bash แทน cmd.exe!

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