it-swarm.com.ru

Composer ошибка установки - требуется ext_curl, когда он действительно включен

Я пытаюсь установить Facebook 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, и я запускаю composer в cmd.exe.

142
Michal Artazov

Это вызвано тем, что в вашей системе не установлена ​​библиотека 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
286
Adriano Rosa

Это сработало для меня: http://ubuntuforums.org/showthread.php?t=1519176

После установки composer с помощью команды curl -sS https://getcomposer.org/installer | php просто запустите Sudo apt-get update, затем переустановите curl с Sudo apt-get install php5-curl. Тогда процесс установки composer должен сработать, чтобы вы могли наконец запустить php composer.phar install, чтобы получить зависимости, перечисленные в вашем файле composer.json.

112
user2998553

Как сказал Данак в комментариях, есть 2 файла php.ini. Я раскомментировал строку с расширением curl в папке Apache, которая используется php.ini веб-сервером. 

Composer, с другой стороны, использует php для консоли, что совсем другая история. Файл php.ini для этой программы не находится в папке Apache, но находится в папке PHP, и мне тоже пришлось раскомментировать строку в нем. Затем я снова запустил установку, и все было в порядке.

26
Michal Artazov

на php7 запустите например:

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

за каждое недостающее расширение. Затем:

> Sudo apt-get update

и наконец (в корневой папке проекта):

> composer install
23
Grigoreas P.

У меня была эта проблема после обновления до PHP5.6. Мой ответ очень похож на ответ Адриано, за исключением того, что мне пришлось бежать:

Sudo apt-get install php5.6-curl

Обратите внимание на «5,6». Установка php5-curl не работает для меня.

10
Aaron Wright

Я столкнулся с той же проблемой, пытаясь установить Dropbox SDK.

CURL действительно был включен в моей системе, но это подразумевалось php.ini в папке wamp\bin\Apache.

Мне просто пришлось вручную отредактировать php.ini, расположенный в wamp\bin\php, раскомментировать строку extension=php_curl.dll, перезапустить Wamp, и все заработало отлично.

Почему есть эти 2 php.ini и используется только один, для меня пока загадка ...

Надеюсь, что это помочь кому-то!

9
user3497737

Согласно https://github.com/composer/composer/issues/2119 вы можете расширить свой локальный composer.json, заявив, что он предоставляет расширение (чего на самом деле он не делает - поэтому вы не должны публично опубликуйте свой пакет, используйте его только внутри страны).

5
Sven

Я столкнулся с аналогичной проблемой при попытке заставить композитора установить некоторые зависимости. Оказывается, .dll, с которой пришла моя версия Wamp, имел конфликт, я полагаю, с 64-битной Windows. 

Этот URL имеет фиксированные скручиваемость: 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.

Надеюсь это поможет.

2
Gratus D.

Включить в php 7 попробуйте команду ниже

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

Для тех, кто сталкивается с этой проблемой в Windows, я не смог найти свой ответ на Google вообще. Я только что попытался запустить composer требует ext-curl и это сработало. Или добавьте следующее в ваш файл composer.json:

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

В моем случае я перешел с PHP5 на PHP7, и у меня появилась эта ошибка Просто перейдите в /bin/php/php7/php.ini, затем раскомментируйте extension = php_curl.dll и перезапустите сервер, перезапустите ваш композитор установить. 

0
Inoubli

если использовать wamp, перейдите по ссылке:

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

0
Kadir Hadile

У меня есть Archlinux с php 7.2, в который встроен Curl, поэтому никакая конфигурация voodoo не заставит Composer видеть ext-curl, который PHP мог бы видеть и работать с удовольствием. Обходной путь - использовать Composer с --ignore-platform-reqs.

например, обновление композитора --ignore-platform-reqs

Ссылка = https://github.com/composer/composer/issues/1426

0
Onyx