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

phpenvとrbenvをMac共存させる

More than 3 years have passed since last update.

色々なレガシーな環境だと、複数バージョンのRubyだけではなく、複数バージョンのPHPを扱える環境が必要になることがあります。

そういう時は、phpenvとrbenvをインストールしましょう。
ですが、phpenvは内部が殆どrbenvになっており、環境変数RBENV_ROOTを参照しているなどしているので、気をつけなければいけない点があります。

まずはインストール

rbenvとphpenvはhomebrewからインストールするのが簡単です。

rbenvをインストール

とても素直にインストールできます。

install_rbenv.sh
$ brew install rbenv
$ brew install ruby-build

rbenvのセットアップ

ここは後で書き換えることになるので飛ばして構いません。
rbenvだけ使いたいのであれば、.bashrc.zshrcなどに下記を追加しましょう。

export RBENV_ROOT=/usr/local/bar/rbenv
export PATH=$RBENV_ROOT/bin:$PATH
eval "$(rbenv init -)"

phpenvをインストール

php関連のものをインストールするために、最初にbrew tapします。

brew tap homebrew/php
brew install phpenv

これは単にhomebrewの管理対象としてgit cloneしただけなので、インストーラーを使います。

php-buildをインストール

homebrew でもphp-buildをインストールできるのですが、この2つは連携できないようです。
そこで、php-buildに従い、git cloneでダウンロードしましょう。

install_php-build.sh
$ git clone git://github.com/CHH/php-build.git $HOME/.phpenv/plugins/php-build

.bashrc を変更

bashなら.bashrcを、zshならば.zshrcに下記の行を追加します。

# export RBENV_ROOT=/usr/local/var/rbenv <= 邪魔になるのでいらない。
export PHPENV_ROOT=$HOME/.phpenv
export PATH="$PATH:$PHPENV_ROOT/bin"
eval "$(rbenv init -)"
eval "$(phpenv init -)"

(任意).rbenv へのシンボリックリンクを作成する。

環境変数RBENV_ROOTを未定義の場合、.bashrc内でrbenv本体は~/.rbenvとして扱われます。
もし、homebrewでインストールしたrbenvを使う場合は、.rbenvをシンボリックリンクとして定義します。

create_symlink_for_rbenv.sh
$ ln -s ~/.rbenv /usr/local/var/rbenv

最後に動作確認を

rbenvの確認

rbenv コマンドが実行できて、rubyがインストールがインストールできることを確認しましょう。

$ rbenv install -l
Available versions:
  1.8.5-p113
  1.8.5-p114
  ...
  ree-1.8.7-2012.01
  ree-1.8.7-2012.02
  topaz-dev
$ rbenv install 2.3.1
$ rbenv versions
  system
* 2.3.1 (set by /Users/tatsuya.sato/.rbenv/version)

$ rbenv global 2.3.1
$ ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]  

phpenvの確認

PHP自体のインストールは他にも色々インストールが必要なので、ここではrbenvとの間に影響が出てないことだけを確認しておきましょう。

$ phpenv install -l
Available versions:
  5.2.17
  5.3.10
  ...
  7.1.0alpha3
  master

もし上手く言ってない場合は、Available versionsにrbenv install -l の結果が出てしまったりします。もしそうなっていたら、.bashrcの内容や環境変数RBENV_ROOTがどこかで定義されていないか確認をしましょう。

それではよりよいPHPライフを。

参考

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
ユーザーは見つかりませんでした