
今回はPHPアクセラレータであるAPCuとOPcacheのご紹介です。
これらはPHPでコンパイルされたデータをキャッシュしてくれます、1度キャッシュしたものは2回目はキャッシュから読み込むのでコンパイル処理が省かれ、PHP処理が高速になります。
キャッシュ対象
- APCu・・・データキャッシュ
- OPcache・・・コードキャッシュ
この記事の対象
PHP5.5以上の環境
EPELリポジトリのインストール
CentOS7の場合
# yum install epel-release
CentOS6の場合
# rpm -ivh http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
APCu, OPcacheインストール
# yum install --enablerepo=epel php-opcache php-pecl-apcu
OPcahceの設定を行います。
キャッシュしてくれる最大サイズの変更
# vi /etc/php.d/10-opcache.ini opcache.memory_consumption=128 ↓変更 ;opcache.memory_consumption=128 opcache.memory_consumption=256
コードに変更があった場合はキャッシュを使わないようにデフォルトで設定されています。
APCuの設定を行います。
キャッシュしてくれる最大サイズと、キャッシュの有効期間を設定
# vi /etc/php.d/40-apcu.ini ;apc.shm_size=32M apc.shm_size=128M ←追記 ;apc.ttl=0 apc.ttl=86400 ;apc.gc_ttl=3600 apc.gc_ttl=86400
また、WEBサーバを再起動し設定を有効化させましょう。
※アプリケーション側でAPCuを使うように設定する必要があります。
設定状況を確認できます。
# php -i | egrep 'apc|opcache'
GUIでキャッシュ状況を確認しよう
APCu コントロールパネル
GitHubからダウンロードしよう。
# wget https://github.com/krakjoe/apcu/archive/master.zip
解凍します。
# unzip master.zip
# rm -f master.zip
ユーザ認証に必要な情報を設定しましょう。
# vi apcu-master/apc.php
defaults('ADMIN_USERNAME','apc'); // Admin Username
defaults('ADMIN_PASSWORD','password'); // Admin Password - CHANGE THIS TO ENABLE!!!
↓変更
defaults('ADMIN_USERNAME','ユーザ名'); // Admin Username
defaults('ADMIN_PASSWORD','パスワード'); // Admin Password - CHANGE THIS TO ENABLE!!!

WEB上から確認できます。
http://ホスト名/apcu-master/apc.php
【User Cache Entries】をクリックすると実際にキャッシュとして格納されているオブジェクトが見れますよ!
OPcacheコントロールパネル Opcache Control Panel
https://gist.github.com/ck-on/4959032
貼り付ける
# vi ocp.php GitHubからコードを貼り付けよう。

WEB上から確認できます。
http://ホスト名/ocp.php
環境にもよりますが、0.5秒程度変わってきたりと導入はおすすめです。
