web-dev-qa-db-fra.com

Erreur d'installation du compositeur - nécessite ext_curl lorsqu'il est activé

J'essaie d'installer Facebook PHP SDK avec Composer. C'est ce que je reçois

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

Le problème est que j'ai l'extension curl activée (non commentée dans php.ini). Quand je lance phpinfo(), il dit que c'est activé . Le seul indice que j'ai, c'est que quand je lance $ php -m, il manque une ligne 'curl' mais je ne sais pas quoi faire à ce sujet.

J'ai Wamp 2.4 sur Win8 et j'exécute composer dans cmd.exe.

128
Michal Artazov

Ceci est dû au fait qu’aucune bibliothèque php5-curl n’est installée sur votre système, 

Sous Ubuntu, lancez simplement le code de ligne ci-dessous. Dans Xamp, consultez la documentation de Xamp. 

Sudo apt-get install php5-curl

Pour ceux qui utilisent php7.0

Sudo apt-get install php7.0-curl

Pour ceux qui utilisent php7.1

Sudo apt-get install php7.1-curl

Pour ceux qui utilisent php7.2

Sudo apt-get install php7.2-curl

Ou tout simplement, lancez la commande ci-dessous pour l'installer selon votre version:

Sudo apt-get install php-curl
286
Adriano Rosa

Cela a fonctionné pour moi: http://ubuntuforums.org/showthread.php?t=1519176

Après avoir installé composer en utilisant la commande curl -sS https://getcomposer.org/installer | php, exécutez simplement un Sudo apt-get update, puis réinstallez curl avec Sudo apt-get install php5-curl. Ensuite, le processus d'installation du compositeur devrait fonctionner afin que vous puissiez enfin exécuter php composer.phar install pour obtenir les dépendances répertoriées dans votre fichier composer.json.

112
user2998553

Comme Danack l'a dit dans ses commentaires, il existe 2 fichiers php.ini. J'ai annulé la ligne avec l'extension curl dans le dossier Apache, qui est php.ini utilisé par le serveur web. 

Compositeur, d’autre part, utilise php pour console, ce qui est une toute autre histoire. Le fichier Php.ini de ce programme n'est pas celui du dossier Apache mais il se trouve dans le dossier PHP et je devais également commenter la ligne qu'il contient. Ensuite, j'ai relancé l'installation et tout s'est bien passé.

26
Michal Artazov

sur php7 exécuté par exemple:

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

pour chaque extension manquante. Ensuite:

> Sudo apt-get update

et enfin (dans le dossier racine du projet):

> composer install
23
Grigoreas P.

J'ai eu ce problème après la mise à niveau vers PHP5.6. Ma réponse est très similaire à celle d'Adriano, sauf que je devais courir:

Sudo apt-get install php5.6-curl

Remarquez le "5.6". L'installation de php5-curl n'a pas fonctionné pour moi.

10
Aaron Wright

J'ai rencontré le même problème en essayant d'installer Dropbox SDK.

CURL a bien été activé sur mon système, mais il s’agit du php.ini situé dans le dossier wamp\bin\Apache.

Je devais simplement modifier manuellement le fichier php.ini situé dans wamp\bin\php, décommenter la ligne extension=php_curl.dll, redémarrer Wamp et tout fonctionnait parfaitement.

Pourquoi il y a ces 2 php.ini et un seul est utilisé est encore un mystère pour moi ...

J'espère que c'est helpul à quelqu'un!

9
user3497737

Selon https://github.com/composer/composer/issues/2119 vous pouvez étendre votre composer.json local pour indiquer qu'il fournit l'extension (ce qui n'est pas vraiment le cas - c'est pourquoi vous ne devriez pas publiquement publiez votre paquet, utilisez-le uniquement en interne).

5
Sven

J'ai rencontré un problème similaire lorsque j'essayais de demander à composer d'installer certaines dépendances. Il se trouve que le fichier .dll de ma version de Wamp était en conflit, je suppose, avec Windows 64 bits. 

Cette URL a corrigé dlls curl: http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/

Faites défiler jusqu'à la section qui dit: Extensions curl fixes.

J'ai téléchargé "php_curl-5.4.3-VC9-x64.Zip". Je viens d'écraser la dll dans le répertoire wamp/bin/php/php5.4.3/ext avec la dll qui se trouvait dans le fichier Zip et le compositeur a de nouveau travaillé.

J'utilise Windows 8 64 bits.

J'espère que cela t'aides.

2
Gratus D.

Activer en php 7 commande ci-dessous

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

Pour ceux qui rencontrent ce problème sous Windows, je ne trouve pas ma réponse sur google. J'ai juste essayé de courir composer composer require-curl et cela a fonctionné. Vous pouvez également ajouter les éléments suivants dans votre fichier composer.json:

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

Dans mon cas, je suis passé de PHP5 à PHP7 et j’ai eu cette erreur, Il suffit d’aller dans votre /bin/php/php7/php.ini, puis décommentez extension = php_curl.dll et redémarrez votre serveur, relancez votre compositeur installer. 

0
Inoubli

si vous utilisez wamp, allez à:

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

0
Kadir Hadile

J'ai Archlinux avec php 7.2, qui a Curl intégré, donc aucune configuration de voodoo ne ferait faire à Composer voir ext-curl, que PHP pourrait voir et travailler avec bonheur. La solution consiste à utiliser Composer avec --ignore-platform-reqs.

par exemple composer update --ignore-platform-reqs

Référence = https://github.com/composer/composer/issues/1426

0
Onyx