Ich versuche, 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.
Das Problem ist, ich habe die Curl-Erweiterung aktiviert (in php.ini nicht kommentiert). Wenn ich laufe phpinfo()
, heißt es, dass es aktiviert ist. Der einzige Hinweis, den ich habe, ist, dass beim Laufen die $ php -m
'Curl'-Linie fehlt, aber ich weiß nicht, was ich dagegen tun soll.
Ich habe Wamp 2.4 unter Win8 und verwende Composer in cmd.exe.
php
windows
curl
facebook-php-sdk
composer-php
Michal Artazov
quelle
quelle
Antworten:
Dies liegt daran, dass in Ihrem System keine Bibliothek php5-curl installiert ist.
Unter Ubuntu ist es einfach, den folgenden Zeilencode auszuführen. In Ihrem Fall unter Xamp sehen Sie sich die Xamp-Dokumentation an
Für alle, die php7.0 verwenden
Für diejenigen, die php7.1 verwenden
Für diejenigen, die php7.2 verwenden
Für diejenigen, die php7.3 verwenden
Oder führen Sie einfach den folgenden Befehl aus, um die Installation nach Ihrer Version durchzuführen:
quelle
Das hat bei mir funktioniert: http://ubuntuforums.org/showthread.php?t=1519176
Nachdem Sie Composer mit dem Befehl installiert haben, führen Sie
curl -sS https://getcomposer.org/installer | php
einfach einesudo apt-get update
Curl mit neu aussudo apt-get install php5-curl
. Dann sollte der Installationsprozess von Composer funktionieren, damit Sie endlichphp composer.phar install
die Abhängigkeiten abrufen können, die in Ihrer Datei composer.json aufgeführt sind.quelle
Wie Danack in Kommentaren sagte, gibt es 2 php.ini-Dateien. Ich habe die Zeile mit der Curl-Erweiterung in dem im Apache-Ordner, der vom Webserver verwendet wird, php.ini auskommentiert.
Composer hingegen verwendet PHP für die Konsole, was eine ganz andere Geschichte ist. Die Php.ini-Datei für dieses Programm befindet sich nicht im Apache-Ordner, sondern im PHP-Ordner, und ich musste auch die Zeile darin auskommentieren. Dann habe ich die Installation erneut ausgeführt und es war in Ordnung.
quelle
auf php7 laufen zum beispiel:
für jede fehlende Erweiterung. Dann:
und schließlich (im Stammordner des Projekts):
quelle
Beim Versuch, das Dropbox SDK zu installieren, ist dasselbe Problem aufgetreten.
CURL war zwar auf meinem System aktiviert, dies bedeutete jedoch die Datei php.ini im Ordner wamp \ bin \ apache.
Ich musste einfach die php.ini in wamp \ bin \ php manuell bearbeiten, die Zeile auskommentieren
extension=php_curl.dll
, Wamp neu starten und es funktionierte perfekt.Warum es diese 2 php.ini gibt und nur eine verwendet wird, ist mir immer noch ein Rätsel ...
Hoffe, es hilft jemandem!
quelle
$ php -S localhost:8000
in der Konsole;
in der Datei php.ini ...Ich hatte dieses Problem nach dem Upgrade auf PHP5.6. Meine Antwort ist der von Adriano sehr ähnlich, außer dass ich rennen musste:
Beachten Sie die "5.6". Die Installation von php5-curl hat bei mir nicht funktioniert.
quelle
Laut https://github.com/composer/composer/issues/2119 können Sie Ihr lokales Verzeichnis so erweitern
composer.json
, dass es die Erweiterung bereitstellt (was nicht wirklich der Fall ist - deshalb sollten Sie Ihr Paket nicht nur öffentlich veröffentlichen intern verwenden).quelle
provide
ein Paket mit dem gleichen Namen wie eine PHP-Erweiterung ebenfalls die Anforderungen erfüllt, da beim Erweitern der erforderlichen und vorhandenen Elemente eine Erweiterung einfach eine Zeichenfolge ist, genau wie der Name eines Bibliothekspakets.Aktivieren Sie in PHP 7 versuchen Sie unten Befehl
quelle
Ich bin auf ein ähnliches Problem gestoßen, als ich versucht habe, Composer dazu zu bringen, einige Abhängigkeiten zu installieren. Es stellt sich heraus, dass die DLL, mit der meine Version von Wamp geliefert wurde, einen Konflikt mit 64-Bit-Windows hatte.
Diese URL hat feste Curl-DLLs: 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: Fixed Curl Extensions.
Ich habe "php_curl-5.4.3-VC9-x64.zip" heruntergeladen. Ich habe gerade die DLL im Verzeichnis wamp / bin / php / php5.4.3 / ext mit der DLL überschrieben, die sich in der Zip-Datei befand, und Composer hat wieder funktioniert.
Ich verwende 64-Bit-Windows 8.
Hoffe das hilft.
quelle
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 auszuführen, für das Ext-Curl erforderlich ist, und das hat funktioniert. Fügen Sie alternativ Folgendes in Ihre Datei composer.json ein:
quelle
Wenn Sie Wamp verwenden, gehen Sie zu:
wamp\bin\php\php.5.x.x\php.ini
find:;extension=php_curl.dll
remove (;)quelle
Ich habe Archlinux mit PHP 7.2, in das Curl integriert ist, sodass Composer aufgrund der Menge an Konfigurationsvoodoo keine Ext-Curl sehen kann, mit der PHP glücklich arbeiten kann. Um dies zu umgehen, müssen Sie Composer mit --ignore-platform-reqs verwenden.
zB Composer Update --ignore-platform-reqs
Referenz = https://github.com/composer/composer/issues/1426
quelle
Versuchen Sie, php5-curl mithilfe des folgenden Snippets zu installieren.
Wenn es nicht funktioniert, versuchen Sie es unter dem Code. Ich bin mir sicher, dass es gut funktioniert.
für mich hat es geklappt ... alles Gute :)
quelle
In meinem Fall bin ich von PHP5 zu PHP7 gewechselt und habe diesen Fehler erhalten. Gehen Sie einfach zu Ihrer /bin/php/php7/php.ini, kommentieren Sie die Erweiterung = php_curl.dll aus und starten Sie Ihren Server neu. Führen Sie die Composer-Installation erneut aus.
quelle
Ich bin mir nicht sicher, warum eine Antwort mit Linux-Befehlen so viele Stimmen für eine Windows-bezogene Frage erhalten würde, aber trotzdem ...
Wenn
phpinfo()
Curl als aktiviertphp -m
angezeigt wird, dies jedoch NICHT, bedeutet dies, dass Sie wahrscheinlich auch einephp-cli.ini
haben. Führen Sie ausphp -i
und sehen Sie, welche INI-Datei geladen wurde. Wenn es anders ist, unterscheiden Sie es und reflektieren Sie und Unterschiede in der CLI-INI-Datei. Dann solltest du gut gehen.Übrigens Git Bash anstelle von cmd.exe herunterladen und verwenden!
quelle