web-dev-qa-db-ja.com

Composerのインストールエラー - 実際に有効になっている場合はext_curlが必要

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.

問題は、カールエクステンションを有効にしていることです(php.iniではコメントアウトされていません)。 phpinfo()を実行すると、有効になっています。私が持っている唯一の手がかりは、私が$ php -mを実行するとき、 'curl'行が抜けているということですが、それについて何をすべきかわかりません。

私はWin8の2.4を使っていて、cmd.exeでcomposerを実行しています。

142
Michal Artazov

これはあなたのシステムにライブラリ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
306
Adriano Rosa

これは私のために働いた: 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ファイルにリストされている依存関係を取得できます。

112
user2998553

Danackがコメントで述べたように、2つのphp.iniファイルがあります。私はApacheフォルダの中の1つの中のcurl拡張子のある行のコメントを外しました。それはウェブサーバによって使われるphp.iniです。

一方、作曲家はコンソールにphpを使用しますが、これはまったく別の話です。そのプログラムのPhp.iniファイルは、Apacheフォルダ内のものではありませんが、PHPフォルダ内にあり、その行もコメント解除する必要がありました。それから私は再びインストールを実行しました、そしてそれはOKでした。

26
Michal Artazov

php7で実行すると例えば:

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

不足している拡張子ごとに。その後:

> Sudo apt-get update

そして最後に(プロジェクトのルートフォルダに):

> composer install
23
Grigoreas P.

私はDropbox SDKをインストールしようとしている同じ問題に遭遇しました。

私のシステムではCURLが実際に有効になっていましたが、これはwamp\bin\Apacheフォルダ内のphp.iniという意味です。

私は単に手動でwamp\bin\phpにあるphp.iniを編集し、extension=php_curl.dll行のコメントを外し、Wampを再起動すれば完全にうまくいきました。

これら2つのphp.iniがあり、1つしか使用されていないのは、まだ私にとって謎です...

それが誰かに助けになることを願っています!

10
user3497737

私はPHP5.6にアップグレードした後にこの問題を抱えていました。私の答えはAdrianoのものと非常によく似ていますが、実行しなければならなかった点が異なります。

Sudo apt-get install php5.6-curl

"5.6"に注目してください。 php5-curlをインストールしてもうまくいきませんでした。

10
Aaron Wright

によると https://github.com/composer/composer/issues/2119 あなたはそれが拡張子を提供すると述べるようにあなたのローカルのcomposer.jsonを拡張することができます(それはあなたがすべきではない理由ですあなたのパッケージを公に公開するのではなく、内部でのみ使用してください。

5
Sven

私はcomposerにいくつかの依存関係をインストールさせようとしたときに同様の問題に遭遇しました。私のバージョンのWampに付属していた.dllが64ビットWindowsと競合していました。

このURLはカールdllを修正しました: http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/

「Fixed Curl Extensions」というセクションまでスクロールします。

私は "php_curl-5.4.3-VC9-x64.Zip"をダウンロードしました。私はただZipファイルにあったdllでwamp/bin/php/php5.4.3/extディレクトリの中のdllを上書きし、作曲家は再び働いた。

私は64ビットのWindows 8を実行しています。

お役に立てれば。

2
Gratus D.

PHP 7で有効にする

Sudo apt-get install php7.0-curl
2
Sujal Patel

Windowsでこの問題に遭遇した人のために私はグーグルで私の答えをまったく見つけることができませんでした。私はただ実行しようとしましたcomposerはext-curlを必要としますそしてこれはうまくいきました。あるいは、composer.jsonファイルに以下を追加します。

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

私の場合、私はPHP 5からPHP 7に移行しましたが、このエラーが発生しました。単に/bin/php/php7/php.iniに移動し、extension = php_curl.dllのコメントを外してサーバーを再起動し、作曲家のインストールをやり直してください。

0
Inoubli

もしwampを使っているなら:

wamp\bin\php\php.5.x.x\php.ini find:;extension=php_curl.dll remove(;)

0
Kadir Hadile

Curlが統合されたphp 7.2のArchlinuxを持っているので、Composerにext-curlを表示させるような設定voodooを作成しても、PHPは表示してうまく動作します。回避策は--ignore-platform-reqsを付けてComposerを使用することです。

例えば作曲家の更新--ignore-platform-reqs

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

0
Onyx