読者です 読者をやめる 読者になる 読者になる

phpenv を Windows の msysgit で動かす

phpenv を Windows の msysgit で動かしてみました。 ただし php-build は使わないので PHP そのもののインストールは手動です・・・単にバージョンを切り替えるだけです。

なお、全ての作業は msysgit の bash で行います。

readlink

まずは readlink コマンドのダミーを作ります。

$ touch /bin/readlink

msysgit には readlink が含まれていないのですが、phpenv(の中の rbenv)は posix 環境が前提なので readlink コマンドが存在しない状況は想定されていないようです。 そのためこれをやっておかないと とんでもないこと になります。

phpenv

Windows 用に修正した phpenv を clone します。

$ git clone https://github.com/ngyuki/phpenv.git -b phpenv ~/.phpenv

.bashrc に phpenv 用の設定を追記します。

$ vi ~/.bashrc

次の通りに追記します。

export PATH="$HOME/.phpenv/bin:$PATH"
eval "$(phpenv init -)"

.bashrc を再読み込みします。

source ~/.bashrc

php

phpダウンロード して次のような配置になるように保存します(5.4.15 の場合の例)。

~/.phpenv/versions/5.4.15/
    dev/
    ext/
    extras/
    php.exe
     :

bin ディレクトリを作ります。

$ mkdir ~/.phpenv/versions/5.4.15/bin/
$ echo -e '#!/bin/bash\n"$(dirname "$0")/../php" "$@"' > ~/.phpenv/versions/5.4.15/bin/php

php.ini を作ったり xdebug を入れたりします。前述の通り php-build はないので全部手作業です。。。

完成

Windows の msysgit で phpenv が使えるようになりました。5.4.15 と 5.5.0RC1 を入れて試してみます。

$ phpenv rehash
$ phpenv versions
  5.4.15
  5.5.0RC1

$ mkdir xxx
$ cd xxx
$ phpenv global 5.4.15
$ phpenv local 5.5.0RC1
$ php -v
PHP 5.5.0RC1 (cli) (built: May  8 2013 12:31:54)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0-dev, Copyright (c) 1998-2013 Zend Technologies

$ cd ..
$ php -v
PHP 5.4.15 (cli) (built: May  8 2013 21:26:20)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    with Xdebug v2.2.2, Copyright (c) 2002-2013, by Derick Rethans

最後に

単にバージョンを切り替えるだけだとあまり便利な感じがしないですね・・・

また、bash が遅いせいかどうか判りませんが、php コマンドを叩いてから実行されるまでに気になる程度の間があります(0.5秒ぐらい)。