画竜点睛を衝く@mapyo

日々やった事をつらつらと書くブログです

macにphpenvを導入する

以下のブログを参考にさせて頂いた。

1. phpenvのinstall

phpenvを入れる

$ curl https://raw.github.com/CHH/phpenv/master/bin/phpenv-install.sh | sh

.zshrcの設定

if [ -d $HOME/.phpenv ]; then
  export PATH="$HOME/.phpenv/bin:$PATH"
  eval "$(phpenv init -)”
fi

ディレクトリの作成と、php-buildの導入

$ mkdir ~/.phpenv/plugins
$ cd ~/.phpenv/plugins
$ git clone git://github.com/CHH/php-build.git

2. brewfileを作成し、必要なものをinstall

基本的にBUILD ERRORが発生したら足りないものをbrewでインストールしていった。 毎回そのプロセスを踏むのはかなり辛いので、brewfileを使って一気に入れる。

brewfileについては、こちらに上げてある。 https://github.com/mapyo/dotfiles/blob/master/brewfile

このような形で作成した。 Macのどこかのフォルダに、このファイルを作成して、

brew bundle

で一通り入る。何か不要なものor実は足りなかったor。。。 とかあったらごめんなさい。。。 brewfile初めて書いてみたので、そこまで詳しくないっす。。。

3. phpのinstall

欲しいバージョンの確認

$ phpenv install --complete

5.5.13を入れた

$ phpenv install 5.5.13

ここで、ちょこちょこエラーが発生した。 brew bundleだけでは解決出来ないものなので、 下の方のビルドエラーと解決方法1と2を実施した。

installが終ったら。。。

# installされているバージョンの確認
$ phpenv versions                               
* system (set by /Users/mapyo/.phpenv/version)
  5.5.13

# 使う
$ phpenv global 5.5.13

# 確認
$ php -v
PHP 5.5.13 (cli) (built: Jul  3 2014 06:37:16)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
    with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans

終わった〜

所感

rbenv入れた時と比べると、結構手間がかかった。。。

ビルドエラーと解決方法1

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

Here are the last 10 lines from the log:

-----------------------------------------
configure: WARNING: bison versions supported for regeneration of the Zend/PHP parsers: 2.4 2.4.1 2.4.2 2.4.3 2.5 2.5.1 2.6 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7 (found: 2.3).
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
configure: error: Please reinstall libedit - I cannot find readline.h
-----------------------------------------

以下のようにして解決。

sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include /usr/include

参考: https://github.com/Homebrew/homebrew-php/issues/591#issuecomment-19477120

ビルドエラーと解決方法2

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

Here are the last 10 lines from the log:

-----------------------------------------
                       ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/math.h:718:12: note: 'finite' declared here
extern int finite(double) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_9, __IPHONE_NA, __IPHONE_NA);
           ^
1 warning generated.
/var/tmp/php-build/source/5.5.13/sapi/cgi/cgi_main.c:1824:10: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types with different sign [-Wpointer-sign]
                for (p = decoded_query_string; *p &&  *p <= ' '; p++) {
                       ^ ~~~~~~~~~~~~~~~~~~~~
1 warning generated.
PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.
-----------------------------------------

参考 http://mj-wave.com/post-926/