ChatGPT解决这个技术问题 Extra ChatGPT

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

我已经使用 this repo 安装了 PHP 7,但是当我尝试运行 composer install 时,它给出了以下错误:

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

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

如何为 PHP 7 安装 ext-curl?

首先安装libcurl,即。 yum install libcurl or apt-get install libcurl。之后使用 curl ./configure --with-curl 配置您的 php 7,最后制作并安装
@Haridarshan 是的,但那很不方便
我已经构建并安装了带有 curl 和其他扩展的 php 7。您可能还需要安装开发库。

T
TheMohanAhuja

好吧,我可以通过以下方式安装它:

sudo apt-get install php-curl

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

之后重新启动apache

sudo service apache2 restart

..并重新启动服务。 sudo 服务 apache2 重启
仅当您使用 apache 网络服务器版本时。您当然不需要为 CLI 版本重新启动 apache
同样 gd2、xmlrpc、soap 等 - 所有小写字母后缀都有效
而不是 sudo service apache2 restart, sudo service apache2 reload
这实际上取决于 APT 源中可用的软件包。首先,使用 apt-get update 更新 APT 包。然后键入 apt-get install php 并按两次 Tab。它将要求确认显示整个列表,如 Display all n possibilities? (y or n):,其中 N 是可用的可能性数量。按 Y,你会得到一长串可用的包,从中你可以找到你想要的包名。当然,如果你的清单很长,这会有点乏味。但是您仍然可以根据版本缩小范围。
N
Nimantha
sudo apt-get install php7.0-curl

如果您没有明确需要,则不应指定版本号。否则您可能会意外安装旧版本。
不鼓励仅使用代码和“试试这个”的答案。我很惊讶你花了这么长时间才得到一个反对票。
就我而言,我必须指定它的版本才能工作。我想这是因为我的系统中安装了多个版本。
如果从 PHP 5.5/5.6 升级,似乎需要指定版本号。
必须另外做sudo apt install curl有人知道为什么会这样吗?
B
Bijaya Kumar Oli

如果“sudo apt-get install php-curl”命令不起作用并显示错误我们应该在安装 curl 之前运行此代码。

第 1 步 - sudo add-apt-repository ppa:ondrej/php

step2 - sudo apt-get 更新

第三步 - sudo apt-get install php-curl

第 4 步 - sudo 服务 apache2 重新启动


我不知道为什么人们不赞成这个,试一试,它可能会奏效。
是的,它有效。顺便说一句,在第 3 步中,您实际上可以选择特定的 php 版本。
有时它需要指定你的 php.ini 版本。例如:step3 sudo apt-get install php7.1-curl ps 你救了我一夜!
m
malhal

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

sudo add-apt-repository ppa:ondrej/php

这是我为我正在使用的 php 版本安装的 php curl,我的是

sudo apt-get install php7.1-curl

如果这对您不起作用,可以使用以下方法删除存储库:

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

其他答案使我得出了完全相同的结论。假设现在是正确的,其他答案在他们自己的时代是正确的。我将验证这适用于 Ubuntu 18.04、Apache 2。这比尝试加载 PHP7.2 版本的简单“php-curl”更可取,(对我而言)我想继续使用 7.1。不要忘记重新启动网络服务器。在此之后,phpinfo() 曾经在模块作者部分 (Sterling Hughes) 下显示 cURL,现在 cURL 有它自己的非常详细的部分,目前为 7.58.0。
你是真正的英雄
这应该是公认的答案。更多选票的答案对我没有帮助。
N
N. berouain

如果您在 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

https://i.stack.imgur.com/MAohx.png


卷曲已安装,但不在该列表中......现在怎么办?编辑 php.ini? (这里总新手)
N
Nimantha

我们可以安装我们在安装 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

您的回答没有增加任何价值。
您的回答不包含任何新信息。请查看其他答案。
这是一个非常好的答案,因为寻找 curl 的人可能会想到下一个关于 mcrypt 的问题。依此类推,因此将所有东西都放在那里非常有用。
为什么这些扩展突然不见了?如何使用 PHP.ini 在独立的 Windows 中安装它们?
J
Joyal

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

sudo apt-get install php7.1-curl

然后重启apache

sudo service apache2 restart

我更喜欢这个答案,因为它指定了版本号。接受的答案不是很准确。
M
Mate Mrše

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

然后运行以下命令:

sudo apt-get install php7.2-curl

sudo service apache2 restart

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


S
SharpC

WAMP 上安装 WebMail Lite 8 时,我收到一个错误,即缺少 CURL 扩展(在 Windows 上也是如此)。

在仅存在于某些 PHP 安装文件夹(例如 7.1.26)中的 reading that libeay32.dll was required 之后,我在 WAMP PHP 版本菜单中将正在使用的 PHP 版本从 7.2.14 切换到 7.1.26,并且错误消失了.


我也必须这样做才能让 CURL 正常工作。 (我尝试将 libeay32.dll 从版本 7.0.10 复制到 7.3.8 文件夹中,但没有工作。)不确定为什么新的 php 7.3.8 安装中缺少此库文件。
C
CiaranSynnott

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


M
MartyBoggs

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/en/curl.installation.php

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

重启所有服务


L
Liao San Kai

如果你得到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