Подтвердить что ты не робот

Ошибка установки 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.

4b9b3361

Ответ 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"
}