如何在PHP 7中安装ext-curl扩展?


188

我已经使用此repo安装了PHP 7 ,但是当我尝试运行时composer install,出现此错误:

  • [package]需要ext-curl *->您的系统缺少所请求的PHP扩展curl。

使用PHP 5,您可以通过运行yumor apt-get install php5-curl命令轻松安装它,但是我找不到如何安装等效的PHP 7。

如何为PHP 7安装ext-curl?


3
首先安装libcurl。yum install libcurl or apt-get install libcurl。之后,使用curl配置您的php 7,./configure --with-curl最后制作并安装
Haridarshan

@Haridarshan是的,但是这
很不

我已经构建并安装带有curl和其他扩展名的php 7。您可能还需要安装devel库。
哈里达山'16

Answers:


442

好吧,我能够通过安装它:

sudo apt-get install php-curl

在我的系统上。这将安装一个依赖包,具体取决于默认的php版本。

之后,重新启动Apache

sudo service apache2 restart

36
..并重新启动服务。sudo service apache2 restart
Sydwell

1
仅在使用apache网络服务器版本时。当然,您无需为CLI版本重启apache
CommandZ

同样是gd2,xmlrpc,soap等-所有小写字母后缀都有效
msanjay

5
无需重新启动sudo服务apache2,而是重新加载sudo服务apache2
sudip

这实际上取决于APT来源中可用的软件包。首先,使用来更新APT软件包apt-get update。然后键入apt-get install php并按两次Tab键。它将要求确认以显示整个列表,例如Display all n possibilities? (y or n):N是可用的可能性数。按Y,您将获得一长串可用的软件包,从中可以找到所需的软件包名称。当然,如果您的清单很长,那么这将有些乏味。但是您仍然可以根据版本缩小范围。
罗密欧·塞拉

98

请尝试

sudo apt-get install php7.0-curl

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之前运行此代码。

  • 第一步-sudo add-apt-repository ppa:ondrej / php
  • 第二步-sudo apt-get update
  • 第三步-sudo apt-get install php-curl
  • 第4步-sudo服务apache2重启

1
我不知道为什么人们对此表示反对,放手一试,可能会奏效。
大绿色鳄鱼皮

1
是的,它有效。顺便说一句,在第3步中,您实际上可以选择特定的php版本。
iliaz

1
有时它需要指定您的php版本。例如:step3 sudo apt-get install php7.1-curl ps,你从漫漫长夜中拯救了我!
Vladimir Ch '18

17

我尝试了上述解决方案,但对我而言不起作用,只是万一有其他人穿着同一双鞋,这就是我所做的。我用以下命令更新了apt-get

sudo add-apt-repository ppa:ondrej/php

这是我用php curl安装的,用于我使用的php版本,我的是

sudo apt-get install php7.1-curl

其他答案使我得出了完全相同的结论。假设现在是正确的,其他答案在自己的时间也是正确的。我将验证它是否适用于Ubuntu 18.04,Apache2。这比简单的“ php-curl”更可取,后者试图加载PHP7.2版本,(对我而言)我想继续使用7.1。不要忘记重新启动Web服务器。此后,在phpinfo()以前在“模块作者”部分(Sterling Hughes)下面显示cURL的地方,现在cURL有它自己的非常详细的部分,当前为7.58.0。
TonyG '18

您是真正的英雄
Berk Kaya

这应该是公认的答案。获得更多选票的答案并没有帮助我。
MarceloAgimóvel18年

11

我们可以安装在安装Magento时需要的任何PHP7扩展,只需使用相关的命令即可,在安装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

谢谢!希望这个能对您有所帮助


您的答案没有任何价值。
Stephan Vierkant '18

您的答案不包含任何新信息。请参阅其他答案。
Stephan Vierkant '18

3
这是一个很好的答案,因为正在寻找curl的人可能会想到下一个关于mcrypt的问题。依此类推,因此将所有内容存储在其中非常有用。
TheKitMurkit

5

首先登录到您的服务器,然后检查服务器上安装的PHP版本。

然后运行以下命令:

sudo apt-get install php7.2-curl

sudo service apache2 restart

用您的PHP版本替换PHP版本(php7.2)。


2

如果您使用的是PHP7.1(请尝试php -version查找您的PHP版本)

sudo apt-get install php7.1-curl

然后重新启动Apache

sudo service apache2 restart

1
我更喜欢这个答案,因为它指定了版本号。接受的答案不是很准确。
亚伦柳

2

我收到一个错误,指出在WAMP上安装WebMail Lite 8(在Windows上)时缺少CURL扩展名。

之后读取libeay32.dll被要求这是只有在一些PHP安装文件夹(如26年7月1日)的存在,我在WAMP PHP版本菜单切换使用的PHP版本7.2.14,从26年7月1日至,错误去远。


为了使CURL正常工作,我也必须这样做。(我尝试将libeay32.dll从7.0.10版本复制到7.3.8文件夹中,但没有用。)不知道为什么新的PHP 7.3.8安装缺少此库文件。
Stefan

1

安装php70w-common

它提供php-api,php-bz2,php-calendar,php-ctype,php-curl,php-date,php-exif,php-fileinfo,php-filter,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-reflection,php-session, php-shmop,php-simplexml,php-sockets,php-spl,php-tokenizer,php-zend-abi,php-zip,php-zlib

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


6
安装'php-curl'就足够了:-)
Stephan Vierkant

0

Windows用户:

注意:Win32用户注意事项为了在Windows环境中启用此模块,请使用libeay32.dll和ssleay32.dll,或者从OpenSSL 1.1开始,使用libcrypto- .dll和libssl- .dll必须出现在PATH中。libssh2.dll也必须存在于您的PATH中。您不需要来自cURL站点的libcurl.dll。

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

将您的C:\ wamp \ bin \ php \ php7.1.15添加到PATH

重新启动所有服务


0

如果您sudo apt-get install php-curl尝试时遇到404错误或错误

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
如此之多的投票,作为答案,Bijaya Kumar Oli是可行的解决方案!
弗拉基米尔·Ch
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.