Help us understand the problem. What is going on with this article?

phpenvやphpbrewの雑な比較

More than 5 years have passed since last update.

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

Hiraku
PHP, Go界隈をうろうろしています。最近はgRPCと戦ってる。 特に明示していなければ、記事中のソースコード片は `CC-0 1.0` とします。出典表示無しで自由にコピペして頂いて構いません。 ただ、記事自体をコピペされるのは嫌なので、ソースコード部分以外の文章は通常通り全ての著作権を私が保持するものとします。 引用を超える範囲のコピペは止めて下さい。
http://blog.tojiru.net/
mercari
フリマアプリ「メルカリ」を、グローバルで開発しています。
https://tech.mercari.com/
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした