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

262
我使用这个源安装了PHP 7,但当我尝试运行composer install时,它会给出以下错误信息:

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

在PHP 5中,你可以通过运行yumapt-get install php5-curl命令轻松安装它,但我找不到如何安装PHP 7的等效版本。

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


3
首先安装libcurl,例如使用yum install libcurlapt-get install libcurl命令。然后配置您的php 7与curl,使用命令./configure --with-curl。最后使用make和install进行安装。 - Haridarshan
@Haridarshan 是的,好吧,但那很不方便。 - The Onin
我已经构建并安装了带有curl和其他扩展的PHP 7。您可能还需要安装开发库。 - Haridarshan
12个回答

580

我成功地安装了它:

sudo apt-get install php-curl

在我的系统上执行此操作。这将安装一个依赖包,该依赖包依赖于默认的php版本。

之后重启apache。

sudo service apache2 restart

37
重启服务。 sudo service apache2 restart - Sydwell
2
只要您在使用 Apache Web 服务器版本,则需要重启 Apache。当然,对于 CLI 版本,则无需重启 Apache。 - CommandZ
同样的,gd2、xmlrpc、soap等都是小写后缀。 - msanjay
5
不使用"sudo service apache2 restart",而是使用"sudo service apache2 reload"。 - sudip
1
这实际上取决于APT源中可用的软件包。首先,使用apt-get update更新APT软件包。然后输入apt-get install php并按两次Tab键。它会要求确认以显示整个列表,如“Display all n possibilities? (y or n):”,其中N是可用的可能性数量。按Y,您将获得一个可用软件包的长列表,您可以在其中找到所需的软件包名称。当然,如果您有一个很长的列表,这可能有点繁琐。但仍然可以根据版本缩小范围。 - Romeo Sierra
对于NGINX用户,只需执行以下操作: sudo apt-get install php-curl service nginx reload - Asuquo12

127
sudo apt-get install php7.0-curl

10
如果不明确需要某个版本号,就不应该指定它,否则可能会意外安装旧版本。 - phil294
4
不鼓励只有代码或者“试试看”的回答。我很惊讶你花了这么长时间才收到一个踩。 - RamenChef
3
对于我的情况,我必须指定版本才能使它正常工作。我猜这是因为我在系统中安装了多个版本。 - padawanTony
1
如果从PHP 5.5/5.6升级,则似乎需要指定版本号。 - AlexL
需要额外执行 sudo apt install curl,有人知道为什么吗? - some_groceries
请指定版本号,我在使用elasticsearch php 6.0时遇到了同样的问题,纠正版本号后问题得以解决。 - Satys

30

如果 "sudo apt-get install php-curl" 命令无法正常工作并显示错误,我们应该在安装curl之前运行以下代码。

  • 步骤1 - sudo add-apt-repository ppa:ondrej/php
  • 步骤2 - sudo apt-get update
  • 步骤3 - sudo apt-get install php-curl
  • 步骤4 - sudo service apache2 restart

1
我不知道为什么有人给这个点了踩,试一下吧,也许会有效果。 - Big Green Alligator
1
没错,它可以工作。顺便说一下,在第三步中,您实际上可以选择特定的PHP版本。 - iliaz
2
有时需要指定您的PHP版本。例如:step3 sudo apt-get install php7.1-curl。附言:你让我免于彻夜难眠! - Vladimir Ch

28

我尝试了上述解决方案,但对我没有用。以防其他人也遇到同样的问题,这就是我所做的。我使用以下命令更新了apt-get。

sudo add-apt-repository ppa:ondrej/php

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

sudo apt-get install php7.1-curl

如果这对你没有用,可以使用以下命令删除存储库:

sudo add-apt-repository --remove ppa:ondrej/php

1
其他答案也让我得出了完全相同的结论。我们可以说现在它是正确的,而其他答案则适用于它们自己的时间。 我将验证这适用于Ubuntu 18.04、Apache 2。这比简单的“php-curl”更可取,后者尝试加载PHP7.2版本,而我想继续使用7.1版本(对我来说)。不要忘记重新启动Web服务器。此后,phpinfo()原本在模块作者部分(Sterling Hughes)下显示cURL,现在cURL有了自己非常详细的部分,目前为7.58.0。 - TonyG
你是真正的英雄。 - Berk Kaya
1
这应该是被接受的答案。得票更多的答案对我没有帮助。 - Marcelo Agimóvel

15

我们可以安装在安装Magento时需要的任何PHP7扩展,只需使用相关命令即可。在安装Magento时如果出现错误,请使用相关命令。

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

你的回答没有任何价值。 - Stephan Vierkant
你的回答没有提供任何新信息。请查看其他答案。 - Stephan Vierkant
4
这是一个非常好的回答,因为寻求 "curl" 的人很可能会在想关于 "mcrypt" 的下一个问题。等等,所以把所有东西都写出来非常有用。 - TheKitMurkit
为什么这些扩展突然消失了?如何在独立的Windows上使用PHP.ini安装它们? - David Spector

14

如果在执行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

这对我有用。

检查当前PHP已安装的模块列表中是否包含curl:

php -m

输入图片说明


1
Curl已安装,但未列出... 现在怎么办?编辑php.ini吗?(我完全是个新手) - Brien Malone

4

首先登录到你的服务器并检查安装在服务器上的PHP版本。

然后运行以下命令:

sudo apt-get install php7.2-curl

sudo service apache2 restart

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


4

如果你正在使用PHP7.1(尝试使用php -version查找你的PHP版本)

sudo apt-get install php7.1-curl

然后重新启动Apache。
sudo service apache2 restart

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

3
我在安装WebMail Lite 8WAMP(Windows上)时遇到了CURL扩展缺失的错误。 阅读了libeay32.dll是必须的,但它只存在于某些PHP安装文件夹中(例如7.1.26),所以我在WAMP PHP版本菜单中将使用的PHP版本从7.2.14切换到7.1.26,错误消失了。

我也不得不这样做才能让CURL正常工作。(我试着将版本7.0.10的libeay32.dll复制到7.3.8文件夹中,但没有成功。) 不确定为什么这个库文件在新的PHP 7.3.8安装中丢失了。 - Stefan

2

安装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/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接