Nginx PHP-FPM apcuで今時のWordPress一般・管理画面の高速化
PHP5.4以前までのPHPの高速化として、APC(Alternative PHP Cache)を使うのが人気でした。
APCはPHPスクリプトのキャッシュと、データ・オブジェクトのキャッシュ(オペコードキャッシュとユーザキャッシュ)に対応しており、APCをインストールするだけでも、高速化を期待できました。また、Wordpressについても、プラグインを導入するだけでAPCを利用した高速化が簡単に行えました。
前回はopcacheを導入して、PHPスクリプトをキャッシュすることで高速化を行いました。
今回はapcuを導入して、データ・オブジェクトのキャッシュを行い高速化してみます。
導入
yum install php-pecl-apcu –enablerepo=remi
設定
opcacheと同じでyumで簡単にインストールできます。
vi /etc/php.d/apcu.ini
extension = apcu.so
apc.enabled=1
apc.shm_size=128M
apc.ttl=3600
apc.gc_ttl=3600
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.shm_sizeは32Mで十分だと思います。
apc.ttlとapc.gc_ttlの値は、サイトの利用頻度や負荷に合わせて値を調整すればいいと思います。
githubから確認用の管理プログラムをインストールすれば、キャッシュ状況を確認することが可能です。
github.com/krakjoe/apcu
apc.php(管理スクリプト)を設置するフォルダにBasic認証をかけていれば、defaults(‘USE_AUTHENTICATION’,0); (パスワード認証無し)に設定した方が使い勝手があがります。
データ・オブジェクトのキャッシュなので、インストールしただけでは基本的にキャッシュされません。
(プラグインによっては、インストールされていると自動でキャッシュされますが)
そこで
APCu Object Cache Backend
wordpress.org/plugins/apcu/
Wordpressのプラグインをダウンロードし、解凍したファイル「object-cache.php」を、キャッシュさせたいサイトの「wp-content」フォルダにアップロードすれば各データがキャッシュされます。
しばらく負荷があるサーバーで利用し監視してみると
APCの不安定さに比べれば、opcacheとapcuは安定して動作するように思います。