⚠この記事はブログ移転前のアーカイブです
気が狂うほど速くなったらしい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した方がいいです