Ошибка установки Composer - требуется ext_curl, когда он действительно включен
Я пытаюсь установить PHP PHP SDK с помощью Composer. Это то, что я получаю
$ 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.
Проблема заключается в том, что включено расширение curl (без комментирования в php.ini). Когда я запускаю phpinfo()
, он говорит, что он включен.
Только ключ, который у меня есть, заключается в том, что когда я запускаю $ php -m
, строка 'curl' отсутствует, но я не знаю, что с этим делать.
У меня есть wamp 2.4 на Win8, и я запускаю композитор в cmd.exe.
Ответы
Ответ 1
Это вызвано тем, что у вас нет библиотеки php5-curl, установленной в вашей системе,
На Ubuntu его просто пропустите код строки ниже, в вашем случае на Xamp загляните в документацию Xamp
sudo apt-get install php5-curl
Для тех, кто использует php7.0
sudo apt-get install php7.0-curl
Для тех, кто использует php7.1
sudo apt-get install php7.1-curl
Для тех, кто использует php7.2
sudo apt-get install php7.2-curl
Или просто выполните команду ниже для установки по вашей версии:
sudo apt-get install php-curl
Ответ 2
Это сработало для меня: http://ubuntuforums.org/showthread.php?t=1519176
После установки композитора с помощью команды curl -sS https://getcomposer.org/installer | php
просто запустите sudo apt-get update
, затем переустановите curl с помощью sudo apt-get install php5-curl
. Затем процесс установки композитора должен работать, чтобы вы могли, наконец, запустить php composer.phar install
, чтобы получить зависимости, перечисленные в вашем файле composer.json.
Ответ 3
Как сказал Данак в комментариях, есть 2 файла php.ini. Я раскоментировал строку с расширением curl в той папке Apache, которая является php.ini, используемой веб-сервером.
Композитор, с другой стороны, использует php для консоли, что представляет собой совершенно другую историю. Файл Php.ini для этой программы не тот, который находится в папке Apache, но он находится в папке PHP, и мне пришлось раскомментировать его. Затем я снова запустил установку, и все было в порядке.
Ответ 4
для запуска php7, например:
> sudo apt-get install php-curl
> sudo apt-get install php-mbstring
для каждого отсутствующего расширения. Тогда:
> sudo apt-get update
и, наконец, (в корневой папке проекта):
> composer install
Ответ 5
У меня возникла эта проблема после обновления до PHP5.6. Мой ответ очень похож на Адриано, за исключением того, что мне нужно было бежать:
sudo apt-get install php5.6-curl
Обратите внимание на "5.6". Установка php5-curl не помогла мне.
Ответ 6
Я столкнулся с той же проблемой, пытаясь установить Dropbox SDK.
CURL действительно включен в моей системе, но это означало php.ini в папке wamp\bin\apache.
Мне просто пришлось вручную отредактировать php.ini, расположенный в wamp\bin\php, раскомментировать строку extension=php_curl.dll
, перезапустить Wamp и работать отлично.
Почему есть эти 2 php.ini и используется только один, все еще остается загадкой для меня...
Надеюсь, что это поможет кому-то!
Ответ 7
Согласно https://github.com/composer/composer/issues/2119, вы можете расширить свой локальный composer.json
чтобы заявить, что он предоставляет расширение (чего он действительно не делает) - почему вы не должны публично публиковать свои пакет, используйте его только внутри).
Ответ 8
У меня возникла аналогичная проблема при попытке установить композитор для установки некоторых зависимостей.
Оказывается, в .dll появилась моя версия Wamp с конфликтом, я предполагаю, с 64-битной Windows.
Этот url имеет фиксированные сглаженные dll: http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/
Прокрутите вниз до раздела, в котором говорится: Исправлены расширения Curl.
Я загрузил "php_curl-5.4.3-VC9-x64.zip". Я просто перезаписал dll внутри каталога wamp/bin/php/php5.4.3/ext с dll, который был в zip файле, и композитор снова работал.
Я запускаю 64-битную Windows 8.
Надеюсь, что это поможет.
Ответ 9
Включить в php 7 попробуйте выполнить команду
sudo apt-get install php7.0-curl
Ответ 10
если использовать wamp, перейдите к:
wamp\bin\php\php.5.x.x\php.ini
найти:
;extension=php_curl.dll
remove (;)
Ответ 11
У меня есть Archlinux с php 7.2, в который встроен Curl, поэтому никакая конфигурация voodoo не заставит Composer видеть ext-curl, что PHP мог видеть и работать с радостью. Работайте над использованием Composer с -ignore-platform-reqs.
например, обновление композитора --ignore-platform-reqs
Ссылка = https://github.com/composer/composer/issues/1426
Ответ 12
В моем случае я перешел с PHP5 на PHP7, и у меня возникла эта ошибка. Просто перейдите на свой /bin/php/php7/php.ini, затем раскомментируйте расширение = php_curl.dll и перезапустите свой сервер, запустите программу установки композитора.
Ответ 13
Для тех, кто сталкивается с этой проблемой в Windows, я не смог найти свой ответ на Google вообще. Я только что попробовал запустить composer требуют ext-curl, и это сработало. Или добавьте следующее в ваш файл composer.json:
"require": {
"ext-curl": "^7.3"
}