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.
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
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.
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é.
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
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.
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!
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).
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.
Activer en php 7 commande ci-dessous
Sudo apt-get install php7.0-curl
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"
}
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.
si vous utilisez wamp, allez à:
wamp\bin\php\php.5.x.x\php.ini
trouver: ;extension=php_curl.dll
remove (;)
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