phpenv で複数の PHP 環境を管理する
phpenv とは
複数のバージョンの PHP を管理し, コマンドで簡単に切り替えるためのものです.
Ruby でいう rbenv や RVM, Perl でいうところの perlbrew にあたるものです.
なお, phpenv の中身は rbenv を流用することで動いています.
インストール
まず, 以下のコマンドでインストールスクリプトを実行します.
$ curl https://raw.github.com/CHH/phpenv/master/install.sh | sh
中では rbenv を git clone していたりするので, Git をインストールしている必要があります.
上記コマンドが成功したら, ~/.bashrc もしくは zsh 使いなら ~/.zshrc に以下のコマンドを追記します.
あとはいま編集したファイルを再度読み込み直すことでインストールは完了です.
# bash の場合 $ source ~/.bashrc # zsh の場合 $ source ~/.zshrc
# phpenv export PATH=$HOME/.phpenv/bin:$PATH eval "$(phpenv init -)"
rbenv をインストールしている場合
先にも書きましたが, phpenv は rbenv を利用した作りになっています.
その関係もあって, PATH の設定は rbenv が phpenv よりも先になっていないと, 正常に動作しません.
~/.bashrc や ~/.zshrc の設定は, 例えば以下のようにする必要があるので注意が必要です.
# rbenv & phpenv export PATH=$HOME/.rbenv/bin:$HOME/.phpenv/bin:$PATH eval "$(rbenv init -)" eval "$(phpenv init -)"
PHP のインストール
phpenv は PHP の環境を管理するためのものであって, RVM や perlbrew のようにインストールするための機能はありません.
その点は rbenv も同様です.
rbenv では ruby-build を使って Ruby をインストールしますが, phpenv では php-build というツールを使うことができます.
php-build のインストールについては以下の記事を参考にしてください.
php-build で PHP 5.4.0 beta1 をビルドする
以下は php-build のインストールを済ませた, という前提で進めます.
phpenv で管理できるようにインストールするには, ~/.phpenv/versions ディレクトリ内にサブディレクトリを作って, それぞれのバージョンの PHP をインストールする必要があるので, 以下のようにします.
$ php-build 5.4.0beta2 ~/.phpenv/versions/5.4.0beta2
インストールが完了すれば phpenv の管理下に置かれることになります.
$ phpenv versions 5.4.0beta1 * 5.4.0beta2 (set by /home/yuya/.phpenv/version)
使用する PHP のバージョンを切り替える
以下のようなのコマンドで, インストール済みの PHP のバージョンを切り替えることができます.
$ phpenv global 5.4.0beta2
その他, 使い方は基本的に rbenv と同様なので, そちらを参考にしてください.
phpenv と php-build の連携
php-build でのビルドでも充分に簡単ですが, せっかくなので phpenv と連携させてもっと簡単にしてみましょう.
以下のようなコマンドだけで好きなバージョンの PHP をビルドし, phpenv の管理下にインストールできるようにします.
$ phpenv install 5.4.0beta2
rbenv でも ruby-build と連携することで rbenv install というサブコマンドを利用することができるようになります.
そこで, rbenv install するためのスクリプト rbenv-install を流用して, こんなものを用意してみました.
このスクリプトを ~/.phpenv/libexec/rbenv-install として保存するだけでインストールは完了です.
これで先のような phpenv install サブコマンドが使えるようになっています.