anyenv + phpenv + php-buildで複数のPHPのバージョンを管理する
ローカル環境で複数のバージョンをPHPを扱えるように、anyenvとphpenvとphp-buildを導入します。
anyenvの導入
作者様のサイト anyenvという**env系の簡易マネージャを作った - As a Futurist...
githubにINSTALL手順があるので、それに従って導入
github.com
INSTALL
$ git clone https://github.com/riywo/anyenv ~/.anyenv $ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.zshrc $ echo 'eval "$(anyenv init -)"' >> ~/.zshrc $ exec $SHELL -l
phpenvの導入
anyenvの導入が終われば以下コマンドでインストールできます。
INSTALL
$ anyenv install phpenv $ exec $SHELL -l ... $ anyenv version phpenv: system (set by /Users/otofu/.anyenv/envs/phpenv/version)
php-buildの導入
phpenvのプラグインとして導入する為、プラグインディレクトリに展開します。
INSTALL
$ cd ~/.anyenv/envs/phpenv $ git clone https://github.com/CHH/php-build.git plugins/php-build
問題なく終わると、以下のコマンドでインストール可能なphpのバージョンが表示されます。
$ phpenv install sage: phpenv install [--ini|-i <environment>] VERSION phpenv install [--ini|-i <environment>] /path/to/definition Available versions: 5.2.17 5.3.10 5.3.11 5.3.12 5.3.13 ... 7.0.0 7.0.1 7.0.2 7.0snapshot master
php 5.6.11をインストール
ドットインストールのPHP入門で使用しているPHPのバージョンが5.6.11なので、同バージョンを導入します。
INSTALL
$ phpenv install 5.6.11 ----------------- | BUILD ERROR | ----------------- Here are the last 10 lines from the log: ----------------------------------------- configure: WARNING: This bison version is not supported for regeneration of the Zend/PHP parsers (found: 2.3, min: 204, excluded: 3.0). configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers. configure: error: mcrypt.h not found. Please reinstall libmcrypt. -----------------------------------------
順調に進んだと思ったら…libmcrypt
をインストールしろとエラーが出たので…homebrewからインストールします。
$ brew install libmcrypt ==> Installing dependencies for mcrypt: mhash ==> Installing mcrypt dependency: mhash ==> Downloading https://homebrew.bintray.com/bottles/mhash-0.9.9.9.el_capitan.bottle.tar.gz ######################################################################## 100.0% ==> Pouring mhash-0.9.9.9.el_capitan.bottle.tar.gz 🍺 /usr/local/Cellar/mhash/0.9.9.9: 17 files, 451.5K ==> Installing mcrypt ==> Downloading https://homebrew.bintray.com/bottles/mcrypt-2.6.8.el_capitan.bottle.1.tar.gz ######################################################################## 100.0% ==> Pouring mcrypt-2.6.8.el_capitan.bottle.1.tar.gz 🍺 /usr/local/Cellar/mcrypt/2.6.8: 15 files, 394.6K
再度インストールphpenv install 5.6.11
を実行
$ phpenv install 5.6.11 [Compiling]: /var/folders/bz/p53hlm2j05j050pg3xhv_lkm0000gn/T/php-build/source/5.6.11 [xdebug]: Installing version 2.3.3 ... [Success]: Built 5.6.11 successfully.
いくつかwarningは出ていますが、インストール自体は成功
正常にインストールが終了するとphpenv versions
コマンドにインストールしたPHPの一覧が表示されます。
(* は現在使用されているPHPになります。)
$ phpenv versions * system (set by /Users/otofu/.anyenv/envs/phpenv/version) 5.6.11
globalで使用するPHPを5.6.11に切り替え
以下のコマンドで使用するバージョンを切り替えます。
$ phpenv global 5.6.11 ... $ phpenv versions system * 5.6.11 (set by /Users/otofu/.anyenv/envs/phpenv/version) ... $ phpenv rehash $ php -v PHP 5.6.11 (cli) (built: Jan 19 2016 21:29:33)
無事に5.6.11に切り替わりました!
お手軽に複数バージョンのPHPを切り替え可能なので便利です。