今までrbenvのみを使用しておりましたが、PHPもバージョンを切り替える必要が出たのでanyenvを使用することにしました。
事前にbrewからrubyenvとruby-buildを削除
$ brew uninstall rbenv
$ brew uninstall ruby-build
# ruby-versionを消しておく
$ rm ~/.ruby-version
anyenvをインストールします。
$ git clone https://github.com/riywo/anyenv ~/.anyenv
anyenvのパスを通します。
内容はpfavillさんの欲張り?anyenvでモダンな開発環境構築。PHP,NodeJS,Ruby,Perl,Python から拝借しました。ありがとうございます。
if [ -d $HOME/.anyenv ] ; then
export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"
# tmux対応
for D in `\ls $HOME/.anyenv/envs`
do
export PATH="$HOME/.anyenv/envs/$D/shims:$PATH"
done
fi
rubyenvとphpenvをanyenvからインストールし、確認。
現状だとsystemのデフォルトが設定されています。
$ anyenv install phpenv
$ anyenv install rbenv
$ anyenv versions
phpenv:
* system (set by /Users/truffaz76/.anyenv/envs/phpenv/version)
rbenv:
* system (set by /Users/truffaz76/.anyenv/envs/rbenv/version)
rubyenvからruby2.3.0をインストールします。
$ rbenv install 2.3.0
$ rbenv global 2.3.0
$ rbenv rehash
$ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin13]
rubyのインストール完了です。
続いてphpenvを使用してphpをインストール。バージョンがアレなのは会社のPHPバージョンに対応するためです。
インストール時にbuild errorが発生してしまいました。これはlibmcryptが入っていなかっただけなのでbrewでインストールして対処しました。
$ phpenv install 5.3.29
-----------------
| BUILD ERROR |
-----------------
Here are the last 10 lines from the log:
-----------------------------------------
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
-----------------------------------------
$ brew install libmcrypt
再チャレンジ。と思ったら以下のようにまたエラーが出た。
opensslはbrewで入れてるんだけど出てしまう。
$ phpenv install 5.3.29
-----------------
| BUILD ERROR |
-----------------
Here are the last 10 lines from the log:
-----------------------------------------
_load_all_certs_from_file in openssl.o
"_sk_value", referenced from:
_zif_openssl_x509_parse in openssl.o
_zif_openssl_csr_new in openssl.o
_zif_openssl_pkcs7_verify in openssl.o
_php_openssl_parse_config in openssl.o
_php_openssl_sockop_set_option in xp_ssl.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [sapi/fpm/php-fpm] Error 1
-----------------------------------------
リンクをforceオプション使うと解決するらしい(configureオプションを変更してmakeし直す方法もあるらしいんだけど今回はやりませんでした)
$ brew link --force openssl
$ phpenv install 5.3.29
[Success]: Built 5.3.29 successfully.
今度こそ成功。
$ phpenv global 5.3.29
$ phpenv rehash
$ php -v
PHP 5.3.29 (cli) (built: Feb 15 2016 00:22:59)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies
with Xdebug v2.2.7, Copyright (c) 2002-2015, by Derick Rethans
完了。