Composer安装错误 - 实际启用时需要ext_curl

时间:2013-10-12 14:31:18

标签: php windows curl facebook-php-sdk composer-php

我正在尝试使用Composer安装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.

问题是,我启用了curl扩展(在php.ini中取消注释)。当我运行phpinfo()时,它表示已启用。 我只知道当我运行$ php -m时,'curl'线丢失但我不知道该怎么办。

我在Win8上使用2.4并且我在cmd.exe中运行composer。

15 个答案:

答案 0 :(得分:304)

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

或者只需运行以下命令即可按您的版本安装:

sudo apt-get install php-curl

答案 1 :(得分:112)

这对我有用: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文件中列出的依赖项。

答案 2 :(得分:26)

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

另一方面,Composer使用php作为控制台,这是一个完全不同的故事。该程序的Php.ini文件不是Apache文件夹中的文件,但它位于PHP文件夹中,我必须取消注释该文件中的行。然后我再次运行安装,没关系。

答案 3 :(得分:23)

在php7上运行,例如:

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

每个缺少的扩展名。然后:

> sudo apt-get update

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

> composer install

答案 4 :(得分:10)

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

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

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

为什么有这两个php.ini并且只使用了一个对我来说仍然是一个谜......

希望它对某人有所帮助!

答案 5 :(得分:10)

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

sudo apt-get install php5.6-curl

注意" 5.6"。安装php5-curl并不适合我。

答案 6 :(得分:5)

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

答案 7 :(得分:2)

我试图让作曲家安装一些依赖项时遇到了类似的问题。 事实证明,我的版本的Wamp与我的64版Windows进行了冲突。

这个网址有固定的卷曲: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”。我刚刚用wip / bin / php / php5.4.3 / ext目录中的dll覆盖了zip文件中的dll,并且作曲家再次工作。

我正在运行64位Windows 8。

希望这有帮助。

答案 8 :(得分:2)

启用php 7尝试以下命令

sudo apt-get install php7.0-curl

答案 9 :(得分:1)

对于在Windows上遇到此问题的任何人,我都无法在google上找到我的答案。 我只是尝试运行 composer require ext-curl ,并且此方法有效。 或者,在composer.json文件中添加以下内容:

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

答案 10 :(得分:1)

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

sudo apt-get install php5-curl

如果它不起作用,请尝试使用下面的代码,我确定它会正常工作。

sudo apt-get install php-curl

对我来说,它工作得非常好...)

答案 11 :(得分:0)

如果使用wamp请访问:

wamp\bin\php\php.5.x.x\php.ini 找: ;extension=php_curl.dll 删除(;)

答案 12 :(得分:0)

我有带有php 7.2的Archlinux,它集成了Curl,因此没有任何配置voodoo可以使Composer看到ext-curl,PHP可以愉快地看到并使用它。解决方法是将Composer与--ignore-platform-reqs一起使用。

例如作曲家更新--ignore-platform-reqs

参考= https://github.com/composer/composer/issues/1426

答案 13 :(得分:0)

就我而言,我从PHP5转到PHP7,但遇到了此错误, 只需转到您的/bin/php/php7/php.ini,然后取消注释extension = php_curl.dll并重新启动服务器,然后重新运行composer安装即可。

答案 14 :(得分:0)

不确定使用Linux命令的答案为什么会获得与Windows有关的问题的高票,但是无论如何...

如果phpinfo()显示启用了Curl,而php -m没有显示,则意味着您也可能拥有php-cli.ini。运行php -i并查看已加载哪个ini文件。如果不同,则将其差异化并反映CLI ini文件中的差异。那你应该很好走。

顺便下载并使用Gi​​t Bash代替cmd.exe!