我试图安装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, '卷曲'行是缺失的,但我不知道该怎么做。

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


当前回答

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

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

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

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

希望对别人有所帮助!

其他回答

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

对于任何在Windows上遇到这个问题的人,我在谷歌上根本找不到我的答案。 我刚刚试着运行作曲家要求ext-curl,这是有效的。 或者在编写器中添加以下内容。json文件:

"require": {
"ext-curl": "^7.3"
}

根据https://github.com/composer/composer/issues/2119,你可以扩展你的本地作曲家。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

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

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