LoginSignup
20
22

More than 5 years have passed since last update.

phpenvとrbenvをMac共存させる

Posted at

色々なレガシーな環境だと、複数バージョンの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ライフを。

参考

20
22
0

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
20
22