こちらやってみました。
php-build を使う
GitHubリポジトリを管理する ghq はインストール済みとして, まず php-build をインストールする
$ ghq get php-build/php-build $ ghq look php-build $ ./install.sh $ exit
現在最新の PHP 7.1.6 をビルドしてみる
php-build -i development 7.1.6 ~/local/php/7.1.6
$ ~/local/php/7.1.6/bin/php -v
PHP 7.1.6 (cli) (built: Jun 10 2017 16:21:37) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.1.6, Copyright (c) 1999-2017, by Zend Technologies
with Xdebug v2.5.4, Copyright (c) 2002-2017, by Derick Rethans
direnv を使って、ディレクトリごとにphpのバージョンを指定する
direnv では cd した時に .envrc の内容を実行します。
そのファイルで $PATH を変更することでディレクトリごとにPHPバージョンの切り替えが実現できます。
path/to/project/.envrc
PATH_add $HOME/local/php/7.1.6/bin
.envrc を保存したとき、
direnv: error .envrc is blocked. Run `direnv allow` to approve its content.
と怒られる場合は
$ direnv allow
を実行するとdirenvが使えるようになります。 ここまでセットアップすれば以下のように切り替わります。
$ php -v
PHP 7.0.19 (cli) (built: May 21 2017 11:56:11) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
$ cd ~/projects/sample_projects/direnv_sample
direnv: loading .envrc
direnv: export ~PATH
$ php -v
PHP 7.1.6 (cli) (built: Jun 10 2017 16:21:37) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.1.6, Copyright (c) 1999-2017, by Zend Technologies
with Xdebug v2.5.4, Copyright (c) 2002-2017, by Derick Rethans
PHPのバージョンアップがあったときは
新しいバージョン定義が追加されていれば、(Pull Requestで更新されてます) git pull して ./install.sh すれば新しいバージョンをビルドできます。以下のような感じです。
$ ghq look php-build
cd /Users/tenkoma/src/github.com/php-build/php-build
bash-3.2$ git pull
Already up-to-date.
bash-3.2$ ./install.sh
Installing php-build in '/usr/local'
- creating directories... done.
- copying files... done.
Done.