Mac OSXにPHP7をインストール

2015年12月にPHP7.0.0がリリースされました。
先日、PHP7.0.2がリリースされ、活発に開発が行われているようです。

手元でPHP7を試すために、PHP7.0.2をインストールしてみました。
OSはMac OSX(Yosemite)です。

依存パッケージのinstallにはhomebrewを使うので、updateしておきます。

1
brew update

PHPのインストールには、phpenvを使います。
phpenvを使うことで、複数のバージョンをインストールすることができます。

phpenvのインストール

1
2
3
$ git clone git@github.com:CHH/phpenv.git
$ cd phpenv
$ phpenv-install.sh

以下を $HOME/.bash_profile or $HOME/.bashrcに追記します。
(zshの場合は、$HOME/.zsh_profile or $HOME/.zshrcです。)

1
eval "$(phpenv init -)"

php-buildのインストール

phpのbuildはphp-buildで行うため、php-buildのインストールを行います。

1
$ git clone git://github.com/php-build/php-build.git $HOME/.phpenv/plugins/php-build

依存パッケージのインストール

PHP7のインストールに必要なパッケージをインストールします。

1
2
3
4
5
6
$ brew install bison
$ brew install re2c
$ brew install libjpeg
$ brew install libpng
$ brew install libmcrypt
$ brew install autoconf

PHP7.0.2のインストール

1
$ phpenv install 7.0.2

PHP7がインストールできたら、globalコマンドでPHPのバージョンを設定します。

1
$ phpenv global 7.0.2

PHPのbuild時にエラーがでた場合はphp-buildのソースコードを修正して確認してみてください。
https://github.com/php-build/php-build/blob/bfd562bd6c11a97f953d92b0aac699ad82a045e2/share/php-build/extension/extension.sh#L128

.phpenv/plugins/php-build/share/php-build/extension/extension.sh

1
2
3
4
5
6
7
8
{
$PREFIX/bin/phpize > /dev/null
"$(pwd)/configure" --with-php-config=$PREFIX/bin/php-config \
$configure_args > /dev/null

make > /dev/null
make install > /dev/null
} >&4 2>&1

以下のように修正します。

1
2
3
4
5
6
7
8
{
$PREFIX/bin/phpize
"$(pwd)/configure" --with-php-config=$PREFIX/bin/php-config \
$configure_args

make
make install
} >&4 2>&1

PHP7について

PHP7はPHP5との互換性が重視されているようなので、移行コストは低そうです。
基本的にはPHP5.6までで非推奨の機能が廃止されています。
詳しくは以下を参照ください。

パフォーマンスに関してはけっこう改善されているようで、PHP5の2倍とのことでした。