Screaming Loud

日々是精進

anyenvで入れたphpenvに対して、composerを使う

デフォルトではcomposerなどがホームディレクトリに入ってしまうので、
anyenvで入れたphpenvで切り替えた時に、対応ができません。

anyenvの入れ方はyuutookun.hatenablog.com
を参照してください。


ですので、別の入れ方をする必要があります。

phpenv 環境で composer global でパッケージをバージョン別にインストールするプラグイン - ngの日記を参考にいれてみました。

まず、以下を入れます。
ngyuki/phpenv-composer · GitHub

$ cd ~/.anyenv/envs/phpenv/plugins
$ git clone https://github.com/ngyuki/phpenv-composer.git
$ phpenv rehash

次にcomposerを実行します。

$ cd ~/.anyenv/envs/phpenv/plugins
$ phpenv-composer/libexec/composer
Download composer.phar ...
#!/usr/bin/env php
All settings correct for using Composer
Downloading...

Composer successfully installed to: /Users/yuto/.anyenv/envs/phpenv/plugins/composer.phar
Use it: php ./composer.phar
Move composer.phar to /Users/yuto/.anyenv/envs/phpenv/versions/5.6.9/composer
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.0-dev (c41079192f38f0fc446b17baa8f628dcb3b61e7d) 2015-09-28 09:38:16

出力から分かる通り、composer.pharがphpの5.6.9のフォルダ以下に移動されています。

ここで、ホームディレクトリを確認すると、ちゃんと移動していることがわかります。

$ phpenv-composer/libexec/composer config -g home
/Users/yuto/.anyenv/envs/phpenv/versions/5.6.9/composer

例えば、larabelをインストールすると、

$ phpenv-composer/libexec/composer global require "laravel/installer=~1.1"
$ ls ~/.anyenv/envs/phpenv/versions/5.6.9/composer/vendor/
autoload.php bin          composer     guzzlehttp   laravel      react        symfony

でちゃんとインストールされていることがわかります。