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を実行しています。
これはあなたのシステムにライブラリ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
これは私のために働いた: 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ファイルにリストされている依存関係を取得できます。
Danackがコメントで述べたように、2つのphp.iniファイルがあります。私はApacheフォルダの中の1つの中のcurl拡張子のある行のコメントを外しました。それはウェブサーバによって使われるphp.iniです。
一方、作曲家はコンソールにphpを使用しますが、これはまったく別の話です。そのプログラムのPhp.iniファイルは、Apacheフォルダ内のものではありませんが、PHPフォルダ内にあり、その行もコメント解除する必要がありました。それから私は再びインストールを実行しました、そしてそれはOKでした。
php7で実行すると例えば:
> Sudo apt-get install php-curl
> Sudo apt-get install php-mbstring
不足している拡張子ごとに。その後:
> Sudo apt-get update
そして最後に(プロジェクトのルートフォルダに):
> composer install
私はDropbox SDKをインストールしようとしている同じ問題に遭遇しました。
私のシステムではCURLが実際に有効になっていましたが、これはwamp\bin\Apacheフォルダ内のphp.iniという意味です。
私は単に手動でwamp\bin\phpにあるphp.iniを編集し、extension=php_curl.dll
行のコメントを外し、Wampを再起動すれば完全にうまくいきました。
これら2つのphp.iniがあり、1つしか使用されていないのは、まだ私にとって謎です...
それが誰かに助けになることを願っています!
私はPHP5.6にアップグレードした後にこの問題を抱えていました。私の答えはAdrianoのものと非常によく似ていますが、実行しなければならなかった点が異なります。
Sudo apt-get install php5.6-curl
"5.6"に注目してください。 php5-curlをインストールしてもうまくいきませんでした。
によると https://github.com/composer/composer/issues/2119 あなたはそれが拡張子を提供すると述べるようにあなたのローカルのcomposer.json
を拡張することができます(それはあなたがすべきではない理由ですあなたのパッケージを公に公開するのではなく、内部でのみ使用してください。
私は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を実行しています。
お役に立てれば。
PHP 7で有効にする
Sudo apt-get install php7.0-curl
Windowsでこの問題に遭遇した人のために私はグーグルで私の答えをまったく見つけることができませんでした。私はただ実行しようとしましたcomposerはext-curlを必要としますそしてこれはうまくいきました。あるいは、composer.jsonファイルに以下を追加します。
"require": {
"ext-curl": "^7.3"
}
私の場合、私はPHP 5からPHP 7に移行しましたが、このエラーが発生しました。単に/bin/php/php7/php.iniに移動し、extension = php_curl.dllのコメントを外してサーバーを再起動し、作曲家のインストールをやり直してください。
もしwampを使っているなら:
wamp\bin\php\php.5.x.x\php.ini
find:;extension=php_curl.dll
remove(;)
Curlが統合されたphp 7.2のArchlinuxを持っているので、Composerにext-curlを表示させるような設定voodooを作成しても、PHPは表示してうまく動作します。回避策は--ignore-platform-reqsを付けてComposerを使用することです。
例えば作曲家の更新--ignore-platform-reqs