WEBシステム開発・デザイン制作などすべての作業を一貫してご提供しております。(大阪・東京近辺)

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は安定して動作するように思います。