#PHP7 (phpng) をインストールして爆速体験をしてみる。
現在php7 (phpng)は開発者向けのAlpha版以下の完成度です。
お試しになる方は自己責任でお願いします。
##前準備
###bison-2.7 をインストール
Fedora 20 や、CentOS 7 ではyum でインストールできるが、CentOS 6 の場合は以下からダウンロードする。
http://ftp.gnu.org/gnu/bison/
バージョンは必ず2.7を使う。新しい物はダメ。
ダウンロードし、解凍したディレクトリで、
./configure
make
make install
###re2c をインストール
Fedora 20 や、CentOS 7 では yum でインストール出来るが(多分)、CentOS 6の場合は以下からダウンロードする。
http://sourceforge.net/projects/re2c/files/re2c/
ダウンロードし、解凍したディレクトリで、
./configure
make
make install
###その他
PHP7 (phpng)のソースコード取得には、git が必要なので、まだインストールしていなかったら、
yum install git
等でインストールしておく。
あと、automake, autoconf 等も必要ではないかと思う。
##PHP7 ( phpng ) のダウンロードからインストールまで
##ソースコードのダウンロードとコンパイルの準備
適当なディレクトリを作成して、
git clone https://git.php.net/repository/php-src.git
cd php-src
git branch phpng origin/phpng
git checkout phpng
./buildconf
##configure設定
詳細は、「./configure --help」でオプションを見ることができるが、基本的にはphp-5.6.xと変わらない。
php をこまめにインストールする方には、configureをオプションごとシェルファイルとして作っておくことをおすすめする。
すでにphp5系をインストール済みであれば、prefix設定推奨。
./configure \
あとはお好みのオプションで
※裏ワザ
ここで生成された Makefile を開き、「-O2」となっている部分を「-O3」と書き直す。
コンパイルの時間がかかるようになるが、phpの実行速度は10%程度速くなる。
これは、php5などでも使えるテクニック。
ただし、何が起こるか保証はできない。決して商用サービスなどで使わないように。
##コンパイル
あとは通常のPHPと同様
make
make test
make install
cp php.ini-お好み /path/to/php.ini
##php.ini の設定
以下は例
max_execution_time=600
memory_limit=128M
error_reporting=0
display_errors=0
log_errors=0
user_ini.filename=
realpath_cache_size=2M
cgi.check_shebang_line=0
zend_extension=opcache.so
opcache.enable_cli=1
opcache.save_comments=0
opcache.fast_shutdown=1
opcache.validate_timestamps=1
opcache.revalidate_freq=60
opcache.use_cwd=1
opcache.max_accelerated_files=100000
opcache.max_wasted_percentage=5
opcache.memory_consumption=128
opcache.consistency_checks=0
開発する時は opcache は何かと邪魔なので、無効にしてもいい。
WEBサーバでテストする場合は「opcache.enable=1」も追加する。
##PHP7( phpng )の実行
/path/to/php -v
と実行し、
PHP 7.0.0-dev (cli) (built: Dec 5 2014 23:29:26)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.8.0-dev, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
と出てくれば成功。
いくつか検証したが、速度的にはphp5.6.0 の2倍程度はでていそう。
WordPress は動作した。(プラグインの中には動作しないものもある)
もし、運用中のWordPressでやらかしてしまった場合は、
- 一旦php5に戻す
- 怪しげなプラグインを削除する
- php7を再インストール( make install だけでいい)
- 動作チェック
を繰り返す。
詳しくは、
http://www.mixp.net/php/894
も、ご参照ください。
2015年1月3日 Qiitaデビューしました。
2014年以前の記事は、
http://www.mixp.net
へどうぞ。--伊良部