LoginSignup
37
37

More than 5 years have passed since last update.

phpenvやphpbrewの雑な比較

Posted at

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でインストール手順をまとめるのも簡単なので、気にならなくなった。

37
37
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
37