LoginSignup
4
4

More than 5 years have passed since last update.

macOS(OS X)にAnyenvでRuby,PHP,NodeJSの環境を構築する

Last updated at Posted at 2016-08-17

macOS(OS X)で、RubyやPHPの環境を構築する場合、rbenv,phpenvを使う人が多いと思います。筆者もその1人です。rbenv,phpenvは個別に考えると凄く便利なのですが、一緒に使用しようとすると少々面倒臭い印象を受けます。何かいい方法はないかと探していたところ、Anyenvという◯◯envをインストール・管理できるツールがあることを知り、早速使用してみました。

以下は色々簡単に纏めたものです。玄人向けと思っていただいた方がいいかもしれません(笑)

前提

事前にHomebrewをMacにインストールして置いてください。

brewでインストールしたものをアンインストール

brew uninstallは一例です。自身の環境に合わせて変更してください。そもそもインストールしてないのであれば、この作業はスキップしてください。

$ brew uninstall rbenv ruby-build phpenv php56 &&\
rm ~/.ruby-version

Anyenvのインストール

brew installは一例です。自身の環境に合わせて変更してください。

$ git clone https://github.com/riywo/anyenv ~/.anyenv &&\
brew install libxml2 libmcrypt openssl re2c &&\
anyenv -h

AnyenvへのPathをとおす

$ vi .bash_profile

if [ -d $HOME/.anyenv ] ; then
  export PATH="$HOME/.anyenv/bin:$PATH"
  eval "$(anyenv init -)"
  for D in `\ls $HOME/.anyenv/envs`
  do
    export PATH="$HOME/.anyenv/envs/$D/bin:$PATH"
  done
fi

設定を反映させるために

$ exec $SHELL -l

または

$ source ~/.bash_profile

各envをインストール

インストールできるenvを確認

$ anyenv install --list

envをインストール

$ anyenv install rbenv phpenv nodeenv

インストールした各envを認識させるために

$ exec $SHELL -l

または

$ source ~/.bash_profile

ヒント

ヒントという名のメモ。

NodeJSについて

筆者個人的にNodeJSは、brewでインストールしてnモジュールでバージョンを切り替えるのがいいのではないかと思います。

configure: error: Cannot find libz

$ phpenv install を実行した時に "configure: error: Cannot find libz" というメッセージが表示されて、Build errorが発生する場合は、$ xcode-select --install を実行すると解決します。

PHPのBuild時にOpenSSLでコケる

OS Xから、OpenSSLのヘッダファイルがなくなり、$ brew link --force openssl でエラーができるようになったそうです。そのため、コンパイラにパスを渡さないといけないそうです。

$ vi .bash_profile

export PHP_BUILD_CONFIGURE_OPTS="--with-openssl=$(brew --prefix openssl) --with-openssl-dir=$(brew --prefix openssl) --with-libxml-dir=$(brew --prefix libxml2)"

設定を反映させるために

$ exec $SHELL -l

または

$ source ~/.bash_profile

参考: brew link openssl --force ができなくて phpenv & php-build で PHP がビルドできない

4
4
2

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
4
4