LoginSignup
2
2

More than 5 years have passed since last update.

Check! anyenv を使って phpenv を使おう(Mac OS X 編)

Last updated at Posted at 2016-04-20

こんにちは、オークファンの @dz_ こと大平かづみです。

Prologue - はじめに

仕事で使っている Mac OS X で、指定のPHPバージョンを利用するため、 anyenvphpenv をインストールして使ってみることにしました。

anyenv とは?

anyenv は、 renv (rubyのバージョン管理)、 phpenv (PHPのバージョン管理)などの **env を管理するためのツールです。同居させるのは手間だったりするらしく、便利そうです!

作業環境

  • Max OS X El Capitan (10.11.4)
  • Homebrew ( brew ) インストール済み
  • Xcode CLI インストール済み

インストール手順

anyenv のインストール

早速、anyenv を導入します。

基本的には、 anyenv のインストール手順に従い、以下のコマンドを実行します。( GitHub の手順では、 .bash_profile.your_profile を記述されてるのでご留意ください。)

$ git clone https://github.com/riywo/anyenv ~/.anyenv
$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(anyenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l

anyenv を使って phpenv をインストール

次に、 anyenvphpenv をインストールします。

# phpenv をインストール
$ anyenv install phpenv

# シェルを再読み込み
$ exec $SHELL -l

phpenv を使って php のバージョン指定してインストール

# インストール可能なPHPバージョンの列挙
$ phpenv install -l

# バージョンを指定して PHP インストール
$ phpenv install {バージョン}

# シェルを再読み込み
$ exec $SHELL -l

# インストールしたバージョンを確認
$ phpenv versions

# システム全体で使用する PHPバージョンを指定する
$ phpenv global {バージョン}

以上で、 php を任意のバージョンで利用することができました!

トラブルシューティング

ちなみに、途中で以下のトラブルに引っかかったので、対処法を残しておきます。

libmcrypt がなくエラーの場合

エラー内容

$ phpenv install 5.6.9

[Info]: Loaded extension plugin
[Info]: Loaded apc Plugin.
[Info]: Loaded composer Plugin.
[Info]: Loaded github Plugin.
[Info]: Loaded uprofiler Plugin.
[Info]: Loaded xdebug Plugin.
[Info]: Loaded xhprof Plugin.
[Info]: php.ini-production gets used as php.ini
[Info]: Building 5.6.9 into ~/.anyenv/envs/phpenv/versions/5.6.9
[Downloading]: https://secure.php.net/distributions/php-5.6.9.tar.bz2
[Preparing]: /var/tmp/php-build/source/5.6.9

-----------------
|  BUILD ERROR  |
-----------------

Here are the last 10 lines from the log:

-----------------------------------------
configure: WARNING: This bison version is not supported for regeneration of the Zend/PHP parsers (found: 2.3, min: 204, excluded: 3.0).
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
-----------------------------------------

The full Log is available at '/tmp/php-build.5.6.9.20160420144448.log'.
[Warn]: Aborting build.

対処

libmcrypt がなかったためなので、インストールしました。

$ brew install libmcrypt

openssl がなくエラーの場合

エラー内容

$ phpenv install 5.6.9

[Info]: Loaded extension plugin
[Info]: Loaded apc Plugin.
[Info]: Loaded composer Plugin.
[Info]: Loaded github Plugin.
[Info]: Loaded uprofiler Plugin.
[Info]: Loaded xdebug Plugin.
[Info]: Loaded xhprof Plugin.
[Info]: php.ini-production gets used as php.ini
[Info]: Building 5.6.9 into ~/.anyenv/envs/phpenv/versions/5.6.9
[Skipping]: Already downloaded and extracted https://secure.php.net/distributions/php-5.6.9.tar.bz2
[Preparing]: /var/tmp/php-build/source/5.6.9
[Compiling]: /var/tmp/php-build/source/5.6.9

-----------------
|  BUILD ERROR  |
-----------------

Here are the last 10 lines from the log:

-----------------------------------------
                                                         ^
/var/tmp/php-build/source/5.6.9/ext/libxml/libxml.c:493:22: warning: assigning to 'char *' from 'xmlChar *' (aka 'unsigned char *') converts between pointers to integer types with different sign [-Wpointer-sign]
                error_copy.message = xmlStrdup(msg);
                                   ^ ~~~~~~~~~~~~~~
2 warnings generated.
/var/tmp/php-build/source/5.6.9/ext/openssl/openssl.c:44:10: fatal error: 'openssl/evp.h' file not found
#include <openssl/evp.h>
         ^
1 error generated.
make: *** [ext/openssl/openssl.lo] Error 1
-----------------------------------------

The full Log is available at '/tmp/php-build.5.6.9.20160420144812.log'.
[Warn]: Aborting build.

対処

OpenSSL は Mac OS X に標準でインストールされていますが、 brew から参照できなかったためにこのエラーが発生したようです。以下のように、 brew からリンクすることで対処できました。

$ brew link openssl --force

Epilogue - おわりに

当初、 brewphpenv をインストールしようとして、思った以上に手間取り苦戦してたところ、 anyenv に出会って事なきを得ました。快適になりました!

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