Besteci yükleme hatası - gerçekten etkinleştirildiğinde ext_curl gerektirir


188

Composer ile Facebook PHP SDK yüklemeye çalışıyorum. Aldığım şey bu

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

Sorun, curl uzantısı etkin (php.ini içinde uncommented) var. Koştuğumda phpinfo(), etkin olduğunu söylüyor. Sahip olduğum tek ipucu $ php -m, koştuğumda, 'kıvrılma' çizgisinin eksik olduğu, ancak bu konuda ne yapacağımı bilmiyorum.

Win8 üzerinde wamp 2.4 var ve cmd.exe besteci çalıştırıyorum.


5
PHP için doğru ini dosyasını düzenlediğinizden emin olmak için "php -i | grep php.ini" çalıştırılsın mı?
Danack

3
Composer şu anda çalışan PHP'yi sunucu sürümü değil, PHP'nin komut satırı sürümü olan uzantıları soracaktır. THAT PHP'nin curl uzantısı yoksa, çalışmaz. Muhtemelen Composer'ın geçerli uygulamasının bir eksikliğidir, çünkü uzak paketleri kapmak uzantıları gerektirmez ve paketleri kapmak için kullanılan sunucunun bir şeyleri yürütmek için kullanılan sunucu olmaması gerekir.
Sven

Yanıtlar:


391

Bu, sisteminizde kurulu bir php5-curl kütüphaneniz olmadığı için,

Ubuntu'da sadece basitçe aşağıdaki satır kodunu çalıştırın, Xamp'taki durumunuzda Xamp belgelerine bir göz atın

sudo apt-get install php5-curl

Php7.0 kullanan herkes için

sudo apt-get install php7.0-curl

Php7.1 kullananlar için

sudo apt-get install php7.1-curl

Php7.2 kullananlar için

sudo apt-get install php7.2-curl

Php7.3 kullananlar için

sudo apt-get install php7.3-curl

Veya sürümünüze göre yüklemek için aşağıdaki komutu çalıştırın:

sudo apt-get install php-curl

10
Sorunun yazarı Windows çalıştırıyor gibi görünüyor. Windows Debian tabanlı değildir.
huertanix

3
@huertanix kullanıcı sistemi çalışıyor olsa da, soru hatası sistemde curl kütüphanesi yüklü değil besteci hataya neden olabilir, ben işaret sadece kullanıcı bunu düzeltmek için nasıl açıklamak için bir örnektir.
Adriano Rosa

3
php 5.6 ile 16 ubuntu de kullanmanız gereken sudo apt-get php5.6 kıvrılma yüklemek
barak

4
Bu "sudo apt-get install php-curl" ile çözüldü
vnchopra

2
php-curl, çözümü php versiyonundan bağımsız yapan bir meta-pakettir. Yani "sudo apt-get install php-curl" evrensel cevaptır
Max

113

Bu benim için çalıştı: http://ubuntuforums.org/showthread.php?t=1519176

Composer komutunu kullanarak kurduktan sonra curl -sS https://getcomposer.org/installer | phpsadece bir sudo apt-get updatesonra yeniden curl ile çalıştırın sudo apt-get install php5-curl. Daha sonra bestecinin yükleme işlemi çalışmalıdır, böylece php composer.phar installcomposer.json dosyanızda listelenen bağımlılıkları almak için çalışabilirsiniz .


Kurulum yöntemi nedeniyle Composer'dan her zaman kaçındım, bu benim isteksizliğimi doğruladı.
MrYellow

@MrYellow öyleyse hangi paket / bağımlılık yöneticisini kullanıyorsunuz? Composer'ın yükleme yönteminde sorun nedir?
Wirone

26

Danack'ın yorumlarda söylediği gibi 2 php.ini dosyası var. Ben web sunucusu tarafından kullanılan php.ini olan Apache klasöründe kıvırmak uzantısı ile çizgi uncommented.

Composer ise konsol için tamamen farklı bir hikaye olan php kullanıyor. Bu program için Php.ini dosyası Apache klasöründe değil ama PHP klasöründe ve ben de satırda uncomment zorunda kaldı. Sonra kurulumu tekrar çalıştırdım ve her şey yolundaydı.


26

php7 çalıştırmak örneğin:

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

eksik olan her uzantı için. Sonra:

> sudo apt-get update

ve son olarak (projenin kök klasöründe):

> composer install

11

Dropbox SDK'yı yüklemeye çalışırken de aynı sorunla karşılaştım.

CURL gerçekten sistemimde etkinleştirildi, ancak bu wamp \ bin \ apache klasöründeki php.ini ile kastedildi.

Ben sadece wamp \ bin \ php içinde yer alan php.ini düzenlemek, extension=php_curl.dllsatır uncomment, Wamp yeniden başlatmak zorunda kaldı ve mükemmel çalıştı.

Neden bu 2 php.ini var ve sadece bir tanesi hala benim için bir gizem ...

Umarım birine yardım eder!


Bir php.ini, Apache tarafından WAMP içinde kullanılır ve diğeri de yerleşik PHP web sunucusunda şu şekilde başlatılırken kullanılır: $ php -S localhost:8000konsolda
Yahya Uddin

Teşekkürler dostum, mükemmel çalışıyor! Neden php_curl kontrol ve ;php.ini dosyasında bir ile anlamıyorum ...
w3spi

10

PHP5.6'ya yükselttikten sonra bu sorunu yaşadım. Cevabım Adriano'nunkine çok benziyor, ancak koşmam gerekiyordu:

sudo apt-get install php5.6-curl

"5.6" ya dikkat edin. Php5-curl'u kurmak benim için işe yaramadı.


5

Https://github.com/composer/composer/issues/2119'a göre yerelinizi composer.json, uzantıyı sağladığını belirtecek şekilde genişletebilirsiniz (gerçekten yapmaz - bu nedenle paketinizi herkese açık olarak yayınlamamalısınız, sadece dahili olarak kullanın).


Tuhaf, nasıl çalışır? Bestecinin uzantıyı kendisi yüklediği anlamına mı geliyor?
Pacerier

Composer önce bulunması gereken şeylerin bir listesini oluşturur ve ardından bu gereksinim listesini sağlayan şeyleri arar. Yüklü PHP uzantıları listede gereksinimleri karşılamak için kullanılabilen bir girdidir. Bu paketler providenedeniyle gerekli karşılaştırarak ve malzeme mevcut aşamasında, aynı zamanda gereksinimlerini tatmin edecek bir PHP uzantısı olarak aynı adlı bir paket, bir uzatma basitçe sadece kütüphane paket ismi gibi bir dizedir.
Sven

3

Php 7'de etkinleştir aşağıdaki komutu deneyin

sudo apt-get install php7.0-curl

2

Bazı bağımlılıkları yüklemek için besteci almaya çalışırken benzer bir sorunla karşılaştım. Wamp sürümüm ile birlikte gelen .dll çıkıyor, 64 bit Windows ile bir çatışma vardı tahmin ediyorum.

Bu URL sabit kıvrılma dll'lerine sahip: http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/

Aşağıya doğru ilerleyin: Sabit Kıvırma Uzantıları.

"Php_curl-5.4.3-VC9-x64.zip" dosyasını indirdim. Ben sadece wamp / bin / php / php5.4.3 / ext dizini içindeki dll zip dosyası ve besteci tekrar çalıştı dll ile üzerine yazdı.

64 bit Windows 8 çalıştırıyorum.

Bu yardımcı olur umarım.


2

Windows'da bu sorunla karşılaşan herkes için cevabımı google'da bulamadım. Ben sadece bestec çalışan ext-curl gerektirir denedim ve bu çalıştı. Alternatif olarak, composer.json dosyanıza aşağıdakileri ekleyin:

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

1

wamp kullanın eğer gidin:

wamp\bin\php\php.5.x.x\php.ini bulmak: ;extension=php_curl.dll kaldır (;)


1

Ben Curl entegre olan php 7.2 ile Archlinux var, bu yüzden hiçbir yapılandırma voodoo Composer ext-curl görmek yapacak, PHP mutlu görmek ve çalışmak. Geçici çözüm Composer'ı --ignore-platform-reqs ile kullanmaktır.

besteci güncellemesi --ignore-platform-reqs

Referans = https://github.com/composer/composer/issues/1426


1

Aşağıdaki snippet'i kullanarak php5-curl kurmayı deneyin.

sudo apt-get install php5-curl

Eğer işe yaramazsa, kodun altında çalışacağından emin olun.

sudo apt-get install php-curl

benim için çalıştı ... tüm iyi :)


sudo apt-get install php-curl, benim için çalıştı ubuntu
max

0

Benim durumumda PHP5'ten PHP7'ye geçtim ve bu hatayı aldım.


0

Linux komutlarıyla verilen bir yanıtın Windows ile ilgili bir soru için neden bu kadar çok oy alacağından emin değilim, ama yine de ...

Eğer phpinfo()gösterileri Curl etkin olarak, henüz php -mo muhtemelen var demektir DEĞİL yapar php-cli.inida. çalıştırın php -ive hangi ini dosyasının yüklü olduğunu görün. Farklıysa, farklılaştırın ve CLI ini dosyasında yansıtın ve farklılıklar. O zaman gitmek için iyi olmalısın.

Btw indirin ve cmd.exe yerine Git Bash kullanın!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.