Как мне установить расширение ext-curl с PHP 7?

190

Я установил PHP 7, используя этот репозиторий , но когда я пытаюсь запустить composer install, он выдает эту ошибку:

  • [пакет] требует ext-curl * -> запрашиваемое расширение PHP curl отсутствует в вашей системе.

С PHP 5 вы можете легко установить его, запустив команду yumor apt-get install php5-curl, но я не могу найти, как установить эквивалент PHP 7.

Как мне установить ext-curl для PHP 7?

Стефан Виеркант
источник
3
сначала установите libcurl т.е. yum install libcurl or apt-get install libcurl, После этого настройте свой php 7 с помощью curl ./configure --with-curlи, наконец,
соберите
@Haridarshan Да, хорошо, но это неудобно
Нино Шкопац
Я собрал и установил php 7 с curl и другим расширением. Вам также может понадобиться установить библиотеки devel.
Харидаршан

Ответы:

445

Ну, я смог установить его:

sudo apt-get install php-curl

в моей системе. Это установит пакет зависимостей, который зависит от версии php по умолчанию.

После этого перезапустите Apache

sudo service apache2 restart
Sabeeh Chaudhry
источник
36
..и перезапусти сервис. sudo service apache2 перезапуск
Sydwell
1
Только если вы используете версию веб-сервера apache. Вам не нужно перезапускать Apache для CLI-версии, конечно
CommandZ
аналогично gd2, xmlrpc, мыло и т. д. - работал суффикс всех маленьких букв
msanjay 25.10.16
5
Вместо перезагрузки службы sudo apache2, перезагрузка службы sudo apache2
sudip
Это на самом деле зависит от пакетов, доступных в источниках APT. Сначала обновите пакеты APT, используя apt-get update. Затем введите apt-get install phpи дважды нажмите вкладку. Будет запрошено подтверждение для отображения всего списка, например, Display all n possibilities? (y or n):где N - доступное количество возможностей. Нажмите Y, и вы получите длинный список доступных пакетов, из которого вы можете найти желаемое имя пакета. Конечно, если у вас длинный список, это будет немного утомительно. Но все же вы можете сузить его в зависимости от версии.
Ромео Сьерра
98

Пожалуйста попробуйте

sudo apt-get install php7.0-curl
jk2K
источник
9
Вы не должны указывать номер версии, если он вам явно не нужен. в противном случае вы можете случайно установить более старую версию.
phil294
2
Ответы только на код и «попробуй это» не приветствуются. Я удивлен, что вам понадобилось так много времени, чтобы получить ни одного отрицательного голоса.
RamenChef
2
В моем случае мне пришлось указать версию, чтобы он работал. Я думаю, это потому, что в моей системе было установлено более одной версии.
padawanTony
1
При обновлении с PHP 5.5 / 5.6 указание номера версии представляется необходимым.
AlexL
пришлось дополнительно sudo apt install curlкому-нибудь знать, почему это так?
Dheeraj
25

Если команда «sudo apt-get install php-curl» не работает и выдает ошибку Мы должны запустить этот код перед установкой curl.

  • step1 - sudo add-apt-repository ppa: ondrej / php
  • step2 - обновление sudo apt-get
  • шаг 3 - sudo apt-get установить php-curl
  • шаг 4 - перезапуск службы sudo apache2
Биджая Кумар Оли
источник
1
Я не знаю, почему люди отвергли это, попробуй, это может сработать.
Большой Зеленый Аллигатор
1
Да, это работает. Кстати, на шаге 3 вы можете выбрать конкретную версию PHP.
iliaz
1
иногда нужно указать версию вашего php. например: step3 sudo apt-get install php7.1-curl ps ты спасаешь меня от долгой ночи!
Владимир Ч
17

Я попробовал описанные выше решения, но у меня это не сработало, просто поставил другого человека в ту же самую обувь, вот что я сделал. Я обновил apt-get следующей командой

sudo add-apt-repository ppa:ondrej/php

это я установил с php curl для версии php, которую я использовал, мой был

sudo apt-get install php7.1-curl
Отличный Лоуренс
источник
Другие ответы привели меня к тому же выводу. Допустим, сейчас это правильно, где другие ответы были правильными для своего времени. Я проверю, что это работает для Ubuntu 18.04, Apache 2. Это предпочтительнее простого «php-curl», который пытается загрузить версию PHP7.2, где (для меня) я хочу продолжать использовать 7.1. Не забудьте перезапустить веб-сервер. После этого, когда phpinfo () раньше показывал cURL только в разделе «Авторы модулей» (Стерлинг Хьюз), теперь у cURL есть свой очень подробный раздел, в настоящее время - 7.58.0.
TonyG
Вы настоящий герой
Берк Кая
Это должен быть принятый ответ. Ответ с большим количеством голосов не помог мне.
Марсело Агимовель
11

Мы можем установить любые расширения PHP7, которые нам нужны во время установки Magento, просто используйте связанную команду, в которой вы получаете ошибку во время установки Magento

sudo apt-get install php7.0-curl
sudo apt-get install php7.0-dom
sudo apt-get install php7.0-mcrypt
sudo apt-get install php7.0-simplexml
sudo apt-get install php7.0-spl
sudo apt-get install php7.0-xsl
sudo apt-get install php7.0-intl
sudo apt-get install php7.0-mbstring
sudo apt-get install php7.0-ctype
sudo apt-get install php7.0-hash
sudo apt-get install php7.0-openssl
sudo apt-get install php7.0-zip
sudo apt-get install php7.0-xmlwriter
sudo apt-get install php7.0-gd
sudo apt-get install php7.0-iconv

Спасибо! Надеюсь, что это поможет вам

Нарендра Соланки
источник
Ваш ответ не добавляет никакой ценности.
Стефан Виеркант
Ваш ответ не содержит никакой новой информации. Пожалуйста, посмотрите другие ответы.
Стефан Виеркант
3
Это очень хороший ответ, поскольку у человека, ищущего curl, скорее всего, возникнет следующий вопрос о mcrypt. И так далее, поэтому очень полезно иметь там все.
TheKitMurkit
5

Сначала войдите на свой сервер и проверьте версию PHP, которая установлена ​​на вашем сервере.

А затем выполните следующие команды:

sudo apt-get install php7.2-curl

sudo service apache2 restart

Замените версию PHP (php7.2) на версию PHP.

Варун П.В.
источник
2

Если вы используете PHP7.1 (попробуйте php -versionнайти версию PHP)

sudo apt-get install php7.1-curl

затем перезапустите Apache

sudo service apache2 restart
Joyal
источник
1
Я предпочитаю этот ответ, так как он указывает номер версии. Принятый ответ не очень точен.
Аарон Лю
2

Я получил ошибку, что расширение CURL отсутствовало во время установки WebMail Lite 8 на WAMP (так в Windows).

После прочтения этого libeay32.dllтребования, которое присутствовало только в некоторых папках установки PHP (например, 7.1.26), я переключил используемую версию PHP с 7.2.14 на 7.1.26 в меню версии WAMP PHP, и ошибка исчезла прочь.

SharpC
источник
Я должен был сделать это также, чтобы заставить CURL работать. (Я попытался скопировать libeay32.dll из версии 7.0.10 в папку 7.3.8, но не сработал.) Не уверен, почему этот файл библиотеки отсутствует в новой установке php 7.3.8.
Стефан
1

установить php70w-common .

Он предоставляет php-api, php-bz2, php-календарь, php-ctype, php-curl, php-date, php-exif, php-fileinfo, php-фильтр, php-ftp, php-gettext, php-gmp, php-hash, php-iconv, php-json, php-libxml, php-openssl, php-pcre, php-pecl-Fileinfo, php-pecl-phar, php-pecl-zip, php-отражение, php-сессия, php-shmop, php-simplexml, php-сокеты, php-spl, php-токенизатор, php-zend-abi, php-zip, php-zlib .

https://webtatic.com/packages/php70/

CiaranSynnott
источник
6
Установка php-curl была достаточной :-)
Стефан Виеркант
0

Пользователи Windows:

Примечание. Примечание для пользователей Win32. Чтобы включить этот модуль в среде Windows, в вашей переменной PATH должны присутствовать libeay32.dll и ssleay32.dll или, начиная с OpenSSL 1.1, libcrypto- .dll и libssl- .dll. Также libssh2.dll должен присутствовать в вашем PATH. Вам не нужно libcurl.dll с сайта cURL.

https://www.php.net/manual/en/curl.installation.php

Добавьте ваш C: \ wamp \ bin \ php \ php7.1.15 в ваш путь

Перезапустите все службы

MartyBoggs
источник
0

Если у вас есть 404 или ошибки, sudo apt-get install php-curlпопробуйте

sudo apt-get update

и снова попробуй

sudo apt-get install php-curl

Но обратите внимание, какая версия была установлена ​​(я использую php7.3 и php7.4-curl был установлен - так что он не будет работать)

попробуй тогда

sudo apt-get install php7.3-curl

В конце вы можете перезапустить такие сервисы, как: apache2 или php-fpm:

sudo apache2 restart
sudo service php7.3-fpm restart

это сработало для меня.

Проверьте, есть ли curl в списке установленных модулей для текущего php:

php -m

введите описание изображения здесь

Якуб Уйввари
источник
-2

Попробуй, если получишь E: Unable to locate package {packageName}

sudo add-apt-repository main
sudo add-apt-repository universe
sudo add-apt-repository restricted
sudo add-apt-repository multiverse
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php-curl
Ляо Сан Кай
источник
1
столько отрицательных ответов, как в ответе Биджая Кумар Оли это отработанное решение!
Владимир Ч