【PHP / Symfony2】
【PHP】Composer がupdating dependencies あたりでフリーズする
PHP フレームワーク Symfony2 のプロジェクトを複数作り、Composer コマンドでバンドルをいろいろインストールしてるうちに、Composer が標準出力に updating dependencies を表示したまま、フリーズするようになった。■ 構築環境
Windows 8.1 (64bit)
PHP 5.6.20 xampp [ xampp-win32-5.6.20-0-VC11.zip / ダウンロード ]
Symfony 2.7.11
■ Composer コマンドでフリーズ
ほんとにフリーズするかどうか、Doctrine でフィクスチャーの読み込みに使うバンドル DoctrineFixturesBundle をインストールして再現してみる。
ふつうに composer で Doctrine のフィクスチャーバンドルを require すると、・・・。
C:\symfony > php composer.phar require doctrine/doctrine-fixtures-bundle --dev
Using version ^2.3 for doctrine/doctrine-fixtures-bundle
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev) ・・・まいど、ここでフリーズ
composer の処理状況を逐一表示してくれる引数「 -vvv 」をコマンドの末尾に付けて、えいやっ。
C:\symfony > php composer.phar require doctrine/doctrine-fixtures-bundle --dev -vvv ・・・ You are running composer with xdebug enabled. This has a major impact on runtime performance. See https://getcomposer.org/xdebug Reading ./composer.json Loading config file ./composer.json ・・・ いちおう動いてるみたいなんだけど、・・・。 ・・・ ・・・ Downloading http://packagist.org/p/symfony/security-guard%24f1d727af4489a98b6f4786fb09788ffd9c193490cda4ece2e8812cf97f0297dc.json Writing C:/Users/***/AppData/Local/Composer/repo/https---packagist.org/provider-symfony$security-guard.json into cache ・・・ どうやら、コレが原因にゃ。
次なるステップは、・・・コレ。
C:\symfony > php composer.phar diagnose ・・・ Checking git settings: OK Checking http connectivity to packagist: OK Checking https connectivity to packagist: OK Checking github.com rate limit: OK Checking disk free space: OK Checking pubkeys: FAIL ・・・問題の個所。公開鍵がFAIL?・・・。 Missing pubkey for tags verification Missing pubkey for dev verification Run composer self-update --update-keys to set them up・・・ こうするといいらしい。 Checking composer version: OK
次のサイトで、「pubkey for dev verification 」 と 「pubkey for tags verification 」の公開鍵(暗号化文字)をゲットしてから、言われた通りにしてみましょう。
[ Composer Public Keys / Signatures ]
C:\symfony > php composer.phar self-update --update-keys ・・・ You are running composer with xdebug enabled. This has a major impact on runtime performance. See https://getcomposer.org/xdebug Open https://composer.github.io/pubkeys.html to find the latest keys Enter Dev / Snapshot Public Key (including lines with -----): ・・・ ココで、サイトから「pubkey for dev verification 」 の暗号化された文字をコピペ。(--- 線も必要) ・・・ ・・・ Enter Tags Public Key (including lines with -----): ・・・ ココで、サイトから「pubkey for tags verification 」 の暗号化された文字をコピペ。(--- 線も必要) ・・・ ・・・ Public keys stored in C:/Users/***/AppData/Roaming/Composer ・・・ こうなれば成功。
念のため、もう一度実行すると 「Checking pubkeys 」 から OK 出ました。
・・・これで、Composer のフリーズはなくなりました。
いままで普通に動いていたのに突然、このような現象が発生した理由は、いまだにわかっておりません。lol
C:\symfony > php composer.phar self-update --update-keys ・・・ Checking git settings: OK Checking http connectivity to packagist: OK Checking https connectivity to packagist: OK Checking github.com rate limit: OK Checking disk free space: OK Checking pubkeys: Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0 87719BA6 8F3BB723 4E5D42D0 84A14642 Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B 0C708369 153E328C AD90147D AFE50952 OK Checking composer version: OK
参考にしたサイト
[ Composer freezing when installing symfony vendors ]
[ Missing pubkeys: FAIL after self-update #4839 ]
追記
普段、Eclipse で XDebug を使っていると、php.ini 上で zend_extension と xdebug を使う設定になっており、これがフリーズする(アップデートに長時間かかる)原因となります。
Composer を使うときは、あらかじめ php.ini でデバッガの設定をコメントアウトしておけばフリーズしなくなるかも。
上の画像に書かれている文字を入力して下さい
|
|
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。