こちらやってみました。
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.