前提
- 対象OS: Mac OSX 10.9.2 Mavericks
- 既存のPHP(/usr/bin/php)を残す
しょうもない系が続く。
最近お仕事的にぺちぺちするところもあって、PHPのバージョン違いを考慮する必要なんかもあるので
rbenv同様phpenvを入れておこうかと。ところが巷にあふれているphpenv(CHH/phpenv)はlibexecにまんまrbenv
を突っ込んでいたりで、共存させるには*shrcで読ませる順番を気にしないといけないといった問題があった。
現状まだバージョンを変える必要はないけどPythonもちょっとだけ読み書きしているのでpyenvも同じように…
ということを考えるとanyenvで管理するべきかなと思い至った。
rbenvは問題ないのだが、このphpenvが現状厄介なのでどうにかしてインストールまでこぎつける。
ざっくり作業メモ
homebrewで入れていた*env系をremoveしていく
1
2
3
4
| $ brew remove rbenv
$ brew remove rbenv-gemset # gemset使う派です
$ brew remove pyenv
$ brew remove pyenb-virtualenv
|
anyenvインストール
1
2
3
4
5
| $ cd
$ git clone https://github.com/riywo/anyenv ~/.anyenv
$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(anyenv init -)"' >> ~/.zshrc
$ exec $SHELL -l
|
*envインストール
1
2
3
4
5
| $ anyenv install rbenv
$ cd .anyenv/envs/rbenv/plugins
$ git clone git://github.com/jf/rbenv-gemset.git # 使う派でs
$ cd
$ anyenv install phpenv
|
Rubyインストール
そのまま引き継げるという話もあったけど、とりあえずこうやってまとめられるまでに試行錯誤が
発生していたのでまっさらにし直した。readlineのバージョンを下げる必要もないので、パッチを
充ててインストールする。Ruby 2.1.1 / 2.0.0をreadline 6.3の環境でもインストールするには - Qiita
を参照してコマンドをコピペ。
1
| $ curl -sSL https://gist.github.com/mislav/a18b9d7f0dc5b9efc162.txt | env CONFIGURE_OPTS="--with-readline-dir=`brew --prefix readline` --with-openssl-dir=`brew --prefix openssl`" rbenv install --patch 2.1.1
|
PHPインストール
一応今回のメイン。どういう悶着があったのかわからないが通信がさっぱり出来ていなくて、よく見たら
phpenv/php-ext/httpの中身がすっからかん。そらそうよ的なあれなんだがなぜこのままなのかよくわからない。
issueにあがっていたコメント通りにmasterからソースを戻す。
1
2
3
4
5
| $ cd .anyenv/envs/phpenv/php-ext/http
$ git fetch
$ git reset --hard origin/master
$ cd ..
$ git commit -am 'fix http'
|
一段落と思いきや、ここからもう少しだけ続く。ひと通り通してから気付いたが画像系とmemcache系がリンク出来なかったようだ
1
2
3
4
| $ phpenv install php-5.5.12
(snip)
configure: error: Can't find vpxc.h
(snip)
|
1
| $ brew install libmemcached
|
このxxxがない、系は環境依存かもしれないけど、まあなんとかこれで押し通せた。
anyenvが採用しているphpenvはphp-buildを使わない書き方になっているらしいけど、その分の手間がどの程度かかるかで
使い勝手を選ぶような気がしている。まあなんというかPHPを使わなければそれにこしたことはない。