LoginSignup
26
25

More than 5 years have passed since last update.

Macにanyenvを入れてrbenvとphpenvを共存させる

Last updated at Posted at 2016-02-14

今まで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

完了。

26
25
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
26
25