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