[PHP]Composer使用時にエラーが発生したとき、最初に確認すること

カテゴリ: composer

Composerを使用してパッケージ管理を初めて行おうとしたとき、エラーなどによって意図した通り動作しない場合があります。
トラブルが発生したときに、まず最初に行うべきチェック項目がgetcomposer.orgに掲載されているので、この内容を元にチェック項目を紹介します。

Composerでのトラブル時に最初にチェックすること

diagnoseで診断を行う

誰かに質問する前に一般的な問題なのか確認するためにcomposer diagnoseコマンドを実行してみてください。以下のように、すべての項目にOKが表示され、エラーメッセージが出なければ次の段階に進みます。

> composer diagnose

You are running Composer with SSL/TLS protection disabled.
Checking composer.json: OK
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
...

self-updateでComposer自体を最新にする

Composerを使用していて何らかの問題が発生した場合は、まず、Composerが最新版なのかを確認することをお勧めします。最新版への更新はcomposer self-updateコマンドで行えます。また現状のバージョンはcomposer --versionで確認できます。composer自体のバージョンアップは行いたくないが最新かどうかのチェックだけ行いたい場合は、--previewオプションをつけると良いです。

> composer --version
Composer version 1.4.2 2017-05-17 08:17:52

> composer self-update --preview
You are already using composer version 1.4.2 (preview channel).

getcomposer.orgにある最新のinstallerでチェックを行う

コマンドラインから、curl -sS https://getcomposer.org/installer | php -- --checkというコマンドを実行して、インストールに関する問題がないのかチェックできます。

> curl -sS https://getcomposer.org/installer | php -- --check
All settings correct for using Composer

※上記のコマンドを実行したときにSSLのエラーが出る場合は、--ssl-no-revokeをつけるとうまくいく場合があります(ですが、SSLチェックが行われないのでお勧めはしません)

> curl -sS https://getcomposer.org/installer | php -- --check
curl: (35) schannel: failed to receive handshake, SSL/TLS connection failed

> curl --ssl-no-revoke -sS https://getcomposer.org/installer | php -- --check
All settings correct for using Composer

作業中に作られたキャッシュファイルなどをいったん消してみる

composerコマンドを実行すると、パッケージ情報のキャッシュや取得したパッケージ、composer.lockなどをローカルのPCに作成します。このため、問題の解決中に意図しないファイルたちが残っているせいでトラブルが発生している可能性があります。

vendorフォルダに内容や、作成されたcomposer.lockのエントリーでの発生する衝突の問題を切り分けるために、rm -rf vendor && composer update -vコマンドでダウンロードしたファイルを削除してから再アップデートを行ってみます。

また、composer clear-cacheを実行して、Composerのキャッシュディレクトリをクリアしてみます。

本記事は、https://getcomposer.org/ のTroubleshootingドキュメントを参考に作成しています。元記事の逐語訳ではなく意訳を行っていたり、内容の検証のため実行したコマンドの結果や補足説明を追記しています。最新の原文を確認したい場合はgetcomposer.orgのDocumentationから確認をお願いします。また、誤りがありましたらコメント欄で指摘を頂けますと幸いです。

Amazonでおトクに買い物する方法
AmazonチャージでポイントGET


Amazonは買いもの前にAmazonギフト券をチャージしてポイントをゲットしないと損!

こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です