⚠この記事はブログ移転前のアーカイブです

気が狂うほど速くなったらしいPHP7とやらを入れてみたいと思います。本当はnginx + wordpressもやりたかったけど力尽きた

現状ではまだPHP7のパッケージはほとんど提供されていないので自分でビルドする必要があります。今回はphpenvを導入して手軽にphp7を導入してみたいと思います。

必要パッケージ

私はこれらを入れないとエラーが出ました。他の環境ではこれ以外に必要な物もあるかもしれません。phpenvでコンパイルしている途中に出るエラーログをしっかり読んで足りないパッケージを補ってください。

sudo apt-get install libpng12-dev re2c libxslt1-dev libcurl4-gnutls-dev libcurl4-nss-dev libjpeg-dev libxml2-dev libtidy-dev libmcrypt-dev libreadline-dev libmagic-dev

また、bison 2.x パッケージが必要なのですが、Ubuntuではbison 3.0がインストールされるようなので、debパッケージを持ってきてbison 2.7を導入します。

wget http://launchpadlibrarian.net/140087283/libbison-dev_2.7.1.dfsg-1_amd64.deb
wget http://launchpadlibrarian.net/140087282/bison_2.7.1.dfsg-1_amd64.deb
sudo dpkg -i libbison-dev_2.7.1.dfsg-1_amd64.deb
sudo dpkg -i bison_2.7.1.dfsg-1_amd64.deb

autoconfも必要なので入れてなかったら入れてください

phpenvのインストール

phpenvを利用してphp各種バージョンをビルドするにはphp-buildが必要になりますが、php-buildも一緒にphpenvのプラグインとして引っ張ってきます

curl -L https://raw.github.com/CHH/phpenv/master/bin/phpenv-install.sh | bash
git clone git://github.com/CHH/php-build.git ~/.phpenv/plugins/php-build
.bashrc編集
nano ~/.bashrc

#以下の2行を追加

export PATH="$HOME/.phpenv/bin:$PATH"
eval "$(phpenv init -)"
.bashrc再読み込み
source ~/.bashrc

以下のコマンドでPHPのバージョン一覧が出れば成功

phpenv install -l
usage: phpenv install [--ini|-i <environment>] VERSION
       phpenv install [--ini|-i <environment>] /path/to/definition

Available versions:
 5.2.17
/*------省略------*/
 5.6.16
 5.6snapshot
 7.0.0
 7.0.0RC1
 7.0.0RC2
 7.0.0RC3
 7.0.0RC4
 7.0.0RC5
 7.0.0RC6
 7.0.0RC7
 7.0.0RC8
 7.0snapshot
 master

PHP7インストール

こうやる

phpenv install 7.0.0

コンパイルはとても長いので待つ。メモリは2GB/8GBでした。素の状態だったら最低1GB無いとキツイかな?この後Raspberry piでコンパイルしようと思ったけどちょっと微妙ですねぇ

PHP7をglobalに

phpenv global 7.0.0

PHP7が動いたぞっ!

php -v

PHP 7.0.0 (cli) (built: Dec  5 2015 12:39:54) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
    with Xdebug v2.4.0RC3-dev, Copyright (c) 2002-2015, by Derick Rethans

そのうちfpmの置き換えかしたいですね。このままだとextensionsも少ないのでwordpressで使うにはphpenvではなく自前でmakeした方がいいです