编写器安装错误-需要ext_curl时,它实际上是启用的

我试图安装Facebook PHP SDK与作曲家。这就是我得到的结果

$ 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.

问题是,我启用了卷曲扩展(在php.ini中未注释)。当我运行phpinfo()时,它说它已启用。 我所拥有的唯一线索是,当我运行$ php -m时,'curl'行不见了,但我不知道该怎么做

我在Win8上有wamp 2.4,我在cmd.exe中运行作曲家。

320778 次浏览

根据https://github.com/composer/composer/issues/2119,你可以扩展你的本地composer.json来声明它提供了扩展(实际上它并没有这样做——这就是为什么你不应该公开发布你的包,只在内部使用它)。

正如Danack在评论中所说,有2个php.ini文件。我取消了在Apache文件夹中使用curl扩展的行,这是web服务器使用的php.ini。

另一方面,作曲家使用php控制台,这是一个完全不同的故事。该程序的PHP .ini文件不在Apache文件夹中,但它在PHP文件夹中,我不得不取消其中的行注释。然后我再次运行安装,它是好的。

当我试图让composer安装一些依赖项时,我遇到了类似的问题。 我猜我的Wamp版本自带的。dll与64位Windows有冲突。< / p >

这个url有固定的curl dll: http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/

向下滚动到“固定卷曲扩展”部分。

我下载了“php_curl-5.4.3-VC9-x64.zip”。我只是用zip文件中的dll覆盖了wamp/bin/php/php5.4.3/ext目录中的dll,然后编写器再次工作了。

我用的是64位的Windows 8。

希望这能有所帮助。

这对我有用:http://ubuntuforums.org/showthread.php?t=1519176

在使用curl -sS https://getcomposer.org/installer | php命令安装composer之后,只需运行sudo apt-get update,然后使用sudo apt-get install php5-curl重新安装curl。然后,composer的安装过程应该可以工作,这样你就可以最终运行php composer.phar install来获得composer中列出的依赖项。json文件。

这是因为您的系统中没有安装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

对于使用php7.3的用户

sudo apt-get install php7.3-curl

对于使用php7.4的用户

sudo apt-get install php7.4-curl

对于使用php8.0的用户

sudo apt-get install php8.0-curl

或者简单地运行下面的命令来安装你的版本:

sudo apt-get install php-curl

我在安装Dropbox SDK时也遇到了同样的问题。

CURL确实在我的系统上启用了,但这意味着在wamp\bin\apache文件夹中的php.ini。

我只需要手动编辑位于wamp\bin\php中的php.ini,取消extension=php_curl.dll行注释,重新启动wamp,它就能完美地工作。

为什么有2个php.ini,只有一个被使用,这对我来说仍然是一个谜…

希望对别人有所帮助!

如果使用wamp去:

< p > wamp\bin\php\php.5.x.x\php.ini 发现: ;extension=php_curl.dll 删除(,)< / p >

例如在php7上运行:

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

对于每一个缺失的扩展。然后:

> sudo apt-get update

最后(在项目的根文件夹中):

> composer install

我在升级到PHP5.6后遇到了这个问题。我的答案和阿德里亚诺的非常相似,除了我必须跑:

sudo apt-get install php5.6-curl

注意“5.6”。安装php5-curl不适合我。

在php 7中启用下面的命令

sudo apt-get install php7.0-curl

我有Archlinux和php 7.2,它集成了Curl,所以再多的配置巫术也不会让Composer看到ext-curl, php可以看到并愉快地使用它。解决方法是使用——ignore-platform-reqs。

例如编写器更新——忽略平台要求

Reference = https://github.com/composer/composer/issues/1426

在我的情况下,我从PHP5移动到PHP7,我得到这个错误, 只需转到/bin/php/php7/php.ini,然后取消注释extension=php_curl.dll,重新启动服务器,重新运行composer安装。< / p >

对于任何在Windows上遇到这个问题的人,我在谷歌上根本找不到我的答案。 我刚刚试着运行编译器需要ext-curl,这是有效的。 或者在编写器中添加以下内容。json文件:< / p >
"require": {
"ext-curl": "^7.3"
}

尝试使用下面的代码片段安装php5-curl。

sudo apt-get install php5-curl

如果它不能工作,尝试下面的代码,我相信它会工作得很好。

sudo apt-get install php-curl

对我来说很有效……祝一切顺利:)

不知道为什么一个Linux命令的答案会得到这么多与Windows相关的问题的投票,但无论如何…

如果phpinfo()显示Curl已启用,而php -m没有,这意味着你可能也有一个php-cli.ini。运行php -i查看加载了哪个ini文件。如果是不同的,区分它并在CLI ini文件中反映和差异。那你应该可以出发了。

顺便说一下,下载并使用Git Bash代替cmd.exe!

如果你得到类似php7.2-curl没有可安装的候选或没有定位任何包或依赖项的错误是php7.2-commonlibcurl3

你必须用成熟的方式来处理。安装aptitude这些ubuntu包管理器会找到所有的依赖项,并逐个安装。

apt-get install aptitude

现在你必须检查资质是否可以下载它,如果下载它按照说明

sudo aptitude install php7.2-curl

如果你遇到类似这样的错误

E: Unable to locate package php7.2-curl
E: Couldn't find any package by glob 'php7.2-curl'

任何类型的错误,我不是说这些错误

尝试重新添加php包

sudo apt-add-repository ppa:ondrej/php


sudo apt-get update

现在试试这个命令

sudo aptitude install php7.2-curl

Aptitude会询问你是否想要保留所有依赖项的当前版本

The following actions will resolve these dependencies:


Keep the following packages at their current version:
1)     php7.2-curl [Not Installed]






Accept this solution? [Y/n/q/?]

输入n,然后输入Enter

Aptitude会找到所有依赖项,并要求您安装所有包类型

y

再一次

y

然后

systemctl restart apache2

为瑞尔的分丁

systemctl restart httpd
默认情况下不启用PHP 7.2 FPM。 注意:要在Apache2中启用PHP 7.2 FPM,请执行

a2enmod proxy_fcgi setenvif


a2enconf php7.2-fpm

这个方法不仅仅是针对这个错误,你可以使用aptitude找到任何php apache2或ubuntu系统包解决方案。

Upvote if you find your solution

如果你是ubuntu,这将为你工作。

composer update --ignore-platform-reqs