PHP 7の導入
次にPHP実行環境を、最新のPHP 7に変更します。PHP 7は2015年12月に10年ぶりのメジャーバージョンアップがなされ、性能向上やメモリ使用量の削減など大きな改善が加えられたPHP処理系となります。
PHP 7は、PHP 5と比べて2倍以上のパフォーマンス向上をもたらし、下位互換性も確保しています。WordPressコアはバージョン4.4以降から対応しています。ただし既存のテーマやプラグインなどにまだ対応していないものもあるので、その点は注意が必要です。
PHP 7もPHP 5.6と同様にremiレポジトリからアップデートできます。
以下のコマンドで、PHP 7にアップデートできます。PHP 5.6でインストールしたAPCu/OPCacheなどの依存関係のあるパッケージも、PHP 7に対応したバージョンにアップデートされます。
[root@CodeZine-CentOS ~]# yum install --enablerepo=remi,remi-php70 install php php-common
「Complete !」と出れば成功です。
バージョンを表示して、問題なく7.0.7になっていることを確認します。
[root@CodeZine-CentOS ~]# php -v PHP 7.0.7 (cli) (built: May 25 2016 18:28:00) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
PHP 7でも、APCu/OPCacheが使用可能です。ただし、APCuにはAPCu-bcという互換性ライブラリが必要となります。APCuの設定ファイル(/etc/php-zts.d/40-apcu.ini)に、太字部分の設定を追加します。
extension = apcu.so extension = apc.so apc.enabled=1 apc_cli.enable = 1 apc.shm_size = 64M apc.mmap_file_mask=/tmp/apc.XXXXXX
HTTPサーバではmod_phpを使用してPHPを呼び出しているため、PHP 7を有効にするためにはHTTPサーバを再起動する必要があります。
[root@CodeZine-CentOS ~]# systemctl restart httpd
ここで、PHP 5.6と同様に、ブラウザでWordPressのトップページを表示させ、FireBugでページのロード時間を確認します。
筆者の環境では29msでした。PHP5.6+APCu/OPCacheにくらべ、ロード時間が39%になりました。
続いて、コンソールからabコマンドでベンチマークをとります。
[root@CodeZine-CentOS ~]# ab -n 100 -c 10 http://localhost/
筆者の環境では、1秒当たりの同時アクセス数は42.18となり、PHP 5.6+APCu/OPCacheと比較して2.36倍の速度となりました。