it-swarm.com.de

Composer-Installationsfehler - Erfordert ext_curl, wenn es tatsächlich aktiviert ist

Ich versuche, das Facebook PHP SDK mit Composer zu installieren. Das bekomme ich

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

Problem ist, ich habe curl extension aktiviert (unkommentiert in php.ini). Wenn ich phpinfo() starte, heißt es, dass es aktiviert ist . Ich habe nur einen Hinweis: Wenn ich $ php -m starte, fehlt die 'curl'-Zeile, aber ich weiß nicht, was ich dagegen tun soll.

Ich habe Wamp 2.4 unter Win8 und führe Composer in cmd.exe aus.

128
Michal Artazov

Dies liegt daran, dass in Ihrem System keine Bibliothek php5-curl installiert ist. 

Auf Ubuntu ist es einfach, den folgenden Zeilencode auszuführen. In Xamp können Sie in der Xamp-Dokumentation nachschauen 

Sudo apt-get install php5-curl

Für alle, die php7.0 verwenden

Sudo apt-get install php7.0-curl

Für diejenigen, die php7.1 verwenden

Sudo apt-get install php7.1-curl

Für diejenigen, die php7.2 verwenden

Sudo apt-get install php7.2-curl

Oder führen Sie einfach den folgenden Befehl aus, um Ihre Version zu installieren:

Sudo apt-get install php-curl
286
Adriano Rosa

Dies funktionierte für mich: http://ubuntuforums.org/showthread.php?t=1519176

Nachdem Sie Composer mit dem Befehl curl -sS https://getcomposer.org/installer | php installiert haben, führen Sie einfach einen Sudo apt-get update aus und installieren Sie anschließend curl mit Sudo apt-get install php5-curl erneut. Anschließend sollte der Installationsprozess von Composer funktionieren, sodass Sie endlich php composer.phar install ausführen können, um die Abhängigkeiten in Ihrer Datei composer.json zu erhalten.

112
user2998553

Wie Danack in Kommentaren sagte, gibt es 2 php.ini-Dateien. Ich kommentierte die Zeile mit der Erweiterung curl in dem Ordner Apache, der vom Webserver verwendeten php.ini ist. 

Composer dagegen verwendet PHP für die Konsole, was eine ganz andere Geschichte ist. Die Php.ini-Datei für dieses Programm ist nicht die im Apache-Ordner, sondern im Ordner PHP, und ich musste auch die Zeile darin auskommentieren. Dann habe ich die Installation erneut ausgeführt und es war in Ordnung.

26
Michal Artazov

auf php7 laufen zum beispiel:

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

für jede fehlende Erweiterung. Dann:

> Sudo apt-get update

und schließlich (im Stammordner des Projekts):

> composer install
23
Grigoreas P.

Dieses Problem hatte ich nach einem Upgrade auf PHP5.6. Meine Antwort ist der von Adriano sehr ähnlich, außer dass ich laufen musste:

Sudo apt-get install php5.6-curl

Beachten Sie die "5.6". Die Installation von php5-curl hat bei mir nicht funktioniert.

10
Aaron Wright

Ich hatte das gleiche Problem, als ich versuchte, Dropbox SDK zu installieren.

CURL wurde zwar auf meinem System aktiviert, dies bedeutete jedoch die php.ini im Ordner wamp\bin\Apache.

Ich musste einfach die in wamp\bin\php befindliche php.ini manuell bearbeiten, die extension=php_curl.dll-Zeile auskommentieren, Wamp neu starten und es funktionierte perfekt.

Warum es diese 2 php.ini gibt und nur eine verwendet wird, ist für mich immer noch ein Rätsel ...

Ich hoffe es hilft jemandem!

9
user3497737

Gemäß https://github.com/composer/composer/issues/2119 können Sie Ihren lokalen composer.json erweitern, um anzugeben, dass er die Erweiterung bereitstellt (was eigentlich nicht der Fall ist) veröffentlichen Sie Ihr Paket, verwenden Sie es nur intern).

5
Sven

Ich bin auf ein ähnliches Problem gestoßen, als ich versuchte, Komponisten dazu zu bringen, einige Abhängigkeiten zu installieren. Es stellte sich heraus, dass die .dll-Version meiner Wamp-Version einen Konflikt hatte, schätze ich, mit 64-Bit-Windows. 

Diese URL hat feste DLL-Dateien: http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/

Scrollen Sie nach unten zu dem Abschnitt, der besagt: Fixed Curl Extensions.

Ich habe "php_curl-5.4.3-VC9-x64.Zip" heruntergeladen. Ich habe einfach die DLL im Verzeichnis Wamp/bin/php/php5.4.3/ext mit der DLL überschrieben, die sich in der Zip-Datei befand, und der Composer funktionierte wieder.

Ich verwende 64-Bit-Windows 8.

Hoffe das hilft.

2
Gratus D.

Aktivieren Sie in PHP 7 den folgenden Befehl

Sudo apt-get install php7.0-curl
2
Sujal Patel

Für alle, die auf dieses Problem unter Windows stoßen, konnte ich meine Antwort auf Google überhaupt nicht finden. Ich habe gerade versucht, composer require ext-curl auszuführen, und das hat funktioniert. Alternativ können Sie Folgendes in Ihre composer.json-Datei einfügen:

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

In meinem Fall bin ich von PHP5 zu PHP7 gewechselt, und ich habe diese Fehlermeldung erhalten, Gehen Sie einfach zu Ihrer /bin/php/php7/php.ini, dann auf uncomment extension = php_curl.dll und starten Sie Ihren Server erneut, führen Sie Ihren Server erneut aus Komponist installieren. 

0
Inoubli

wenn Sie Wamp verwenden, gehen Sie zu:

wamp\bin\php\php.5.x.x\php.ini find: ;extension=php_curl.dll remove (;)

0
Kadir Hadile

Ich habe Archlinux mit PHP 7.2, das Curl integriert hat, also würde Voodoo nicht so viele Konfigurationsmöglichkeiten haben, dass Composer ext-curl sieht, mit dem PHP glücklich arbeiten und arbeiten könnte. Sie umgehen den Composer mit --ignore-platform-reqs.

zB Composer-Update --ignore-platform-reqs

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

0
Onyx