Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
35
Help us understand the problem. What is going on with this article?

More than 5 years have passed since last update.

@Hiraku

phpenvやphpbrewの雑な比較

PHPの複数バージョンを切り替えながら使えるようにする、ナントカenv/ナントカbrewのPHP版について。久しぶりにセットアップしたのでメモ。

昔からブログ記事はいくつかあるのだけど、比較記事があまり見つからないのでまとめておく。

やりたいこと(前提)

一応の注釈だけど、こういう複数環境切り替え系のセットアップツールは以下を前提にしていると思う。

  1. 開発環境用
  2. Unix系やMac OSを想定。Windowsお断り
  3. 初心者向けではない

php-buildなどでのインストールはビルドを伴うので、開発用ツールのセットアップが必要だし、インストールの時間もかかるし、何よりハマりやすい。普通は本番環境やデプロイで使うものではない。
また、大体のツールはgmakeやautotoolsの存在を前提にしているので、Windowsで動かない。Cygwinとか頑張れば可能だろうけど、、たぶんツール作者はWindowsユーザーのことを考えていない。
PHPを勉強したいだけの初心者は、素直に最新版のPHPを普通に使っておけば困らないと思う。あとでphpenvに移すのも難しくないし。

それから、私の場合はこんな前提も追加になる。

  • apacheやphp-fpmは必要ない
  • PHPに依存しないでPHPがインストールできる方がよい

開発程度であればPHPのビルトインウェブサーバーで可能だし、そもそもapacheを経由するテストならちゃんとテスト環境を作るはずなので、そこはphp-build等でビルドするのではなく、パッケージ版のPHPを使ってテストするべきだと思う。

雑な比較(2015年5月)

これ系統のツールは乱立していて、どれがデファクトと言うわけでもない。
しかも「phpenv」を名乗っているものが複数あって、これまたややこしさに拍車をかけている。

名前 特徴
CHH/phpenv rbenvにパッチをあててPHP用に修正するただのスクリプト。 ビルド機能はないので、通常php-buildをプラグインとして併せて使う。
Travis-CIでも使われている
php-build/php-build phpをビルドするbashスクリプト。phpenvのプラグインとしても、これ単独でも使える。
旧リポジトリ: github.com/CHH/php-build
laprasdrum/phpenv 最初からrbenvにCHH/phpenvのパッチをあてた状態にして、git cloneするだけでセットアップ完了できるようにしたもの。riywo/anyenvで採用されているが、更新が止まっている。
phpenv/phpenv CHH/phpenvとは別物で、rbenvからのフォークのようだが、2年前から更新が止まっている
phpbrew/phpbrew ビルド機能も付属し、extensionのインストールも細かく指定できて高機能。しかしPHPに依存しているので、ゼロからPHPをインストールするためには使えない。
旧リポジトリ: github.com/c9s/phpbrew
virtphp/virtphp pythonのvirtualenvを模したモノ、と説明にあり、PHPに依存する。php-buildと連携することもできるらしい。
使ったことがないので詳しく語れない。
kawahara/php-nabe 単独でphp-build+phpenv相当の機能を有するbashスクリプト。よさげなんだけど、phpenvで満足して使わなくなってしまった…

結局どれを使えばいいの?

まあ、好きなのを使えばいいと思うんだけど、個人的にはTravisが採用している安心感から、CHH/phpenv+php-buildに落ち着いた。php-buildは「CHH/php-build」から「php-build/php-build」にリポジトリが移転しているので、そこだけ気を付ければ先人たちの記事を参考にインストールできると思う。

phpenv+php-buildの微妙なところは、コマンドが分かれているので初回セットアップが面倒な点だけど、最近はAnsibleやChefでインストール手順をまとめるのも簡単なので、気にならなくなった。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
35
Help us understand the problem. What is going on with this article?