5.2.17のみ)などのインストールが必要です。PHPのバージョンを色々揃えたいというニーズは多くの人がお持ちだと思います。これを解決する方法の一つにphp-buildがあります。このツールとphpenvを組み合わせて使うことで、様々なバージョンのPHPを楽に扱うことができます。これら2つのツールについては既に他の方も紹介されていますが、両ツールの最新バージョンに追随したい場合など、少々わかりにくい点がある気がします。インストール方法も何種類か流儀があり、どうするのがベストか悩んでいる人もいるのではないでしょうか。本稿ではphpenv+php-buildを僕がどう使っているかを紹介します。構築・運用の一例として参考になれば幸いです。phpenvとphp-buildphp-buildは複数のPHP環境を構築するためのツールです。phpenvと併用することで、phpとタイプしたときに呼び出されるPHPのバージョンを自由に切り替えることができます。同様のツールとしてはRubyのrvmが有名ですね。僕自身、近い目的でphpallというツールを作っているのですが、phpenv+php-buildは次のような優位性を持っています。phpizeコマンドなどを含めPHPのバージョンを切り替えられるExtensionの開発時に非常に便利!PEARやExtensionのディレクトリについてPHPのバージョンごとに別で持っているAPCやXdebugなど、実戦に即したExtensionをビルドしてくれる3つめの項目はメリットもデメリットもある話題のように思います。いうのも、phpallではビルドするExtensionをかなり絞っているため、比較的多くの環境でPHP5.0系から全バージョンをビルドできる傾向があります。一方で、php-buildはよく使われるExtensionの大多数をビルドしようとするのですが、その分だけ関連ライブラリを要求します。後述するように回避策もあるのですが、環境によっては少し敷居が高くなるかもしれません。インストールまずphpenvをインストールしましょう。インストールにはgitコマンドが必須です。bash上記コマンドの終了時のメッセージに従い、.bashrcまたは.zshrcの末尾に次の2行を追加してシェルを再起動します。-)&quot;次に、php-buildをphpenvのプラグインとしてインストールします。install」コマンドが有効になります。これはruby-buildをrbenvのプラグインとして使うやり方を真似たものです。phpenv」が通ったら不要になるんですが、いまのところ放置されています。(2013-06-19追記)以下の2行はphp-build最新版(0.10.0)以降は不要になりました。php-build/bin/rbenv-installPHPのビルドでは早速PHPの各バージョンをビルドしてみましょう。--complete」とタイプするとインストール可能な全バージョンが表示されます。」の後でtabキーを押すと候補が出てきます。5.4snapshotかなり膨大な量が出てきますが、大半は不要なものだと思います。いえ、snapshotもビルドできるのは素晴らしいですね。5.4.6の3バージョンをビルドしてみましょう。5.4.6ビルドオプションを変更するビルドの際、コンパイラに渡すオプションを変更することもできます。-gつきでコンパイルしたい場合は次のようになります。5.4.6こうしておくとgdbでPHPの処理を追いかけたい場合に便利です*1また、configureのオプションを変更することもできます。5.2.17を例に挙げれば下記のパスに記述してあります。5.2.17でmysqliを有効にするとなぜかリンクが通らなかったので、mysqliに関する行を次のように修正して使っています。&quot;--with-mysqli&quot;この-Dというのはデフォルトで指定されているconfigureオプションを除去するという意味です。-Rであれば指定されているconfigureオプションの値を変更する指定になります。ちなみにデフォルトのconfigureオプションは下記のパスに記述してあります。$HOME/.phpenv/plugins/php-build/share/php-build/default_configure_optionsこれとバージョン毎の指定をマージしたものが各バージョンのconfigureオプションになるわけです。phpenvのバージョンアップに追随するphpenvのドキュメントに従えば、バージョンアップは次のように行えます。masterするだけです。これだと内部的に利用しているrbenvのバージョンアップにしか追随できないので、phpenv自体のバグが見つかったような場合は改めて新規インストールしてしまうのも手です。php-buildのバージョンアップに追随する僕のやり方だと、php-buildのバージョンアップにもgitコマンドを利用します。最新版に追随する場合は次のようになります。pullまた、特定のバージョンにしておきたい場合は次のようにもできます。下記のようにしてバージョンを切り替えて使います。通常のPATH内で見つかるPHP環境になる上記コマンドでバージョンを切り替えると、phpコマンドだけでなくphpizeやpyrusなども各バージョンのものに切り替わります。参考URL大半の内容は@yuya_takeyamaさんの記事を読めばわかります。phpenvで内部的に利用しているrbenvのページ。READMEが参考になる。cleanされるのをコメントアウトする必要があります。次の日>ページビュー2060134。