KUSANAGIが搭載するPHP処理系
KUSANAGIには、汎用的な処理系であるPHP 5.6、および昨年12月にリリースされたPHPの最新バージョンとなるPHP 7、米フェイスブックが開発するPHP互換のHHVMの3種が搭載され、KUSANAGIの独自コマンドで処理系を瞬時に変更することができます。
PHP 5.6は、KUSANAGI以外で動作していたコードの移行やPHP 7非対応などのプロダクトを動作させるための安定的な処理系です。
PHP 7は、PHP 5系に比して大幅なパフォーマンス改善が図られていますが、リリース間もないこともあり、コードレベルの対応は、まだこれからという状況です。ただし、今後メインストリームとなっていくのは、まず間違いありません。
HHVMは、KUSANAGIが搭載するPHP処理系では、最も高いパフォーマンスを発揮しますが、PHP互換を謳う独自の処理系となるため、信頼性の面では多少劣ります。
KUSANAGIが複数のPHP処理系を搭載することにより、運用環境に応じて適した処理系を選択できるだけでなく、特定の処理系が動作しない場合に対する対応性の確保、別の処理系での検証の容易さを兼ね備え、高い利便性を実現しています。
これらのKUSANAGIが搭載するPHP処理系を、前回作成したLAMP環境をベースに順次導入し、ベンチマークの計測を行います。
なお、KUSANAGIのPHP 7、HHVMは、処理系が併存できるようKUSANAGI独自のリポジトリより提供されており、ここで紹介される導入方法とは異なります。
PHP 5.6の導入
PHP 5.6は、PHP 5系の最終リリースバージョンとなり、2016年12月末までバグ改修などのサポートが行われ、それ以降は2018年の末までセキュリティ問題のみのサポートとなります。なお、CentOS 7で標準インストールされるPHP 5.4は、2015年9月に公式サポートを終了しており、CentOS 7/REHL7で提供されるPHP 5.4はRedHat社が独自サポートしているものになります。
今回は、前回作成した標準LAMP環境に、PHP 5系の最新版のPHP 5.6をインストールします。
PHP 5.6をインストールするために、Remiというサードパーティーのパッケージリポジトリを使用します。
まず、yum updateコマンドでパッケージを最新の状態に更新しておきます。
[root@CodeZine-CentOS ~]# yum update -y
以下のコマンドで、EPELレポジトリとremiレポジトリをインストールします。
[root@CodeZine-CentOS ~]# yum install epel-release http://rpms.famillecollet.com/enterprise/remi-release-7.rpm -y
「Complete !」と出れば成功です。
インストール前に、現在のPHPバージョンを確認します。5.4.16と表示されます。
[root@CodeZine-CentOS www]# php -v PHP 5.4.16 (cli) (built: Jun 23 2015 21:17:27) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
次に、remiレポジトリからphp 5.6をインストールします。remiレポジトリは通常無効になっているため、--enablerepoオプションで有効にします。
前回作成した標準LAMP環境には、すでにPHP 5.4がインストールされているため、PHP 5.6でアップデートインストールされます。
[root@CodeZine-CentOS ~]# yum --enablerepo=remi,remi-php56 install php php-common -y
「Complete !」と出れば成功です。
アップデート後のPHPバージョンを確認します。5.6.22になっています。
[root@CodeZine-CentOS www]# php -v PHP 5.6.22 (cli) (built: May 26 2016 15:36:45) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
前回同様に、WordPressを対象にしたベンチマークをとります。ブラウザ(Firefox)でWordPressのトップページを表示させ、Firefoxのアドオン「FireBug」でページのロード時間を確認します。筆者の環境では176msでした。
次にコンソールに戻り、abコマンドでベンチマークをとります。
[php@CodeZine-CentOS ~]$ ab -n 100 -c 10 http://localhost/
筆者の環境では、1秒当たりの同時アクセス数は6.38となりました。