回答:
WAMPとComposerが異なるPHPインストールを使用している可能性があります。Composerは、PATH
環境変数に設定されたPHPを使用します。
openssl拡張機能を有効にしてComposerをインストールする場合は、最初にPHPインストールの場所を確認する必要があります。
echo %PATH%
ます。次に、PHPインストールの場所を確認します。php.ini
。extension=php_openssl.dll
先頭のセミコロンを削除して、行のコメントを解除します。これで、Composerをインストールできます。
echo %PATH%
と、次のようになります:C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\Sysem32\WindowsPowerShell\v1.0\;C:\Program files\Microsoft\Web Platform Installer\;C:\Program Files\MySQL\MySQL Server 5.5\bin
..これらのディレクトリのいずれにもphpがインストールされていません。
extension_dir = "ext"
でphp.ini
はなく、私の代わりにWAMPのプレーンなPHPのインストールを使用しています。
別の方法で問題を解決しました。問題は、wampのGUIが誤解を招くというphp_openssl
ことです。有効にしたと主張しました。php.ini
同じGUI をクリックした場合、実際にextension=php_openssl.dll
はコメントが外されていることが示されました。
OPのComposerの同じインストーラーバージョンを使用しているかどうかはわかりませんが、実際には最初に、 php.exe
を適用する対象するように求められます(これにより、基本的に誰もがComposerを適用しようとしないことが保証されますOPで何が起こったかなど、間違ったphp実行可能ファイル。
私がこれを解決した方法は、wampパッケージ内のphpのインストールに自分で行って、そこC:\wamp\bin\php\php5.4.12
を見るというものでしたphp.in
。それを開いたとき、その行extension=php_openssl.dll
が実際にコメントされていることにショックを受けました!私はそれをコメント解除し、それはうまくいきました。
私は同じ問題を抱えていましたが、ここで私が見つけた解決策は、php.iniでいくつかの変更を行う必要があることです。
extension_dir = "ext"
extension = php_openssl.dll
ここでは、openssl拡張機能をアクティブにすることを話しますが、Windowsでは、拡張機能dirもアクティブにする必要があります。
extension_dir
、あなたは素晴らしいです!
WAMPサーバーの場合、「エンリケ」からのコメントで問題が解決しました。
wampはこのphp.iniを使用しています:
c:\wamp\bin\apache\Apache2.4.4\bin\php.ini
しかし、composerはCLIからPHPを使用しているため、次のファイルを読み取っています。
c:\wamp\bin\php\php5.4.12\php.ini (so you need to enable openssl there)
composerの場合、拡張機能を有効にする必要があります
c:\wamp\bin\php\php5.4.12\php.ini
変化する:
;extension=php_openssl.dll
に
extension=php_openssl.dll
WAMPスタックが1つもない Windowsでこれを実行している場合、これを実行する方法は次のとおりです
C:\php
ます。Composerのインストーラーは、それ以上のプロンプトなしでそれを見つけましたphp.ini
。代わりに、下記のように2つのファイルが表示されます。名前を変更するphp.ini
か、コピーしてくださいphp.ini
ます。
php.ini
ファイルを開き、この行からセミコロンを削除します(他のコメントも解除したい場合がありますが、この行はComposerに必要な唯一の行です)。
;extension=php_openssl.dll
それだけで十分です。Composerインストーラーは、ここから必要なすべてを実行する必要があります。
両方のファイル(phpとapache)で「extension = php_openssl.dll」を有効にする必要があります。私のPCファイルのパスはこれらです:
これは古い質問ですが、同じ問題が(PHP7で)発生しただけで、解決策は結局非常に簡単でした。php.ini
ただし、他の回答に従ってコメントを外すだけでは十分ではありませんでした。私はそれを変更する必要がありました:
;extension=php_openssl.dll
に:
extension=ext/php_openssl.dll
ext
接頭辞に注意してください。DLLはすでに存在していますが、サブフォルダーにありました。設定を変更した後、composerインストーラーは満足のいくものでした。
あなたはopenssl拡張を有効にする必要があります
C:\wamp\bin\php\php5.4.12\php.ini
それはそれがタイプを持っているphp構成ファイルであり、アイコンのようなドライバのメモ帳で「構成設定」を持っています。
openssl拡張の前にセミコロンがあります
;extension=php_openssl.dll
セミコロンを削除すると、
extension=php_openssl.dll
php.ini
開発用と本番用の2つのファイルがあります。それらを残してください、php.ini
アイコンのようなギアでそれらのすぐ上に設定を構成するための別のファイルがあります。
php.ini
、他のユーザーが提案した編集をここで行います。
「正しい」ファイル(すべてのphp.ini)を編集した後。まだ問題がありました。私の解決策は:
システム変数の追加:OPENSSL_CONF
OPENSSL_CONFの値は、現在のphpバージョンのopenssl.cnfファイルでなければなりません。
私にとっては:
-> WAMPを再起動します->これで動作するはずです
それでも問題を解決できない場合は、こちらをご覧ください。これはあなたが探している解決策かもしれません
C:\ wamp \ bin \ php \ php xyzフォルダにいくつかのphp.iniファイルがあります。プロダクション、開発、その他のphp.iniファイルを見つけることができます。本番および開発ファイルを編集する意味はありません。下の画像とまったく同じファイルを見つけます。(検索できます。検索バーにphp.iniと入力して検索してください)。ファイルを開いて削除します。extension = php_openssl.dllから。ファイルを保存して閉じます。Wamppサーバーのすべてのサービスを再起動します。Composerを再インストールします。
それだ。
ソースからコンパイルした場合extension=php_openssl.dll
、php.iniファイルへの追加が機能しないことがあります。
これをトラブルシューティングするには、コマンドプロンプトを開いてと入力しますphp -i
。最初の行までスクロールすると、php.iniファイルに関する最新のエラーが表示されます。
問題を解決するには、php_openssl.dll
ファイルを見つけます。私にとっては、それはコンパイル出力の非常に同じディレクトリにありました。
C:\php-sdk\bin\phpdev\vc14\x64\php-7.0.13-src\x64\Release_TS
そのため、拡張子があるディレクトリをに追加しますphp.ini
。
extension_dir = "C:\php-sdk\bin\phpdev\vc14\x64\php-7.0.13-src\x64\Release_TS"
うまくいけば、エラーがなくなるでしょう
%PATH%
。ComposerがWampServerではなく他の場所でPHPを探している可能性があります。