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

Nginx PHP-FPM opcacheで今時のWordPress一般・管理画面の高速化

PHP5.4以前までのPHPの高速化として、APC(Alternative PHP Cache)を使うのが人気でした。

APCはPHPスクリプトのキャッシュと、データ・オブジェクトのキャッシュ(オペコードキャッシュとユーザキャッシュ)に対応しており、APCをインストールするだけでも、高速化を期待できました。また、Wordpressについても、プラグインを導入するだけでAPCを利用した高速化が簡単に行えました。

ただ、負荷が大きなサーバやキャッシュするファイル・データが多いサイトの場合、不具合が多かったように思えます。

自分の勝手な勘違いかもしれないと思い

今回、PHPのバージョンも上がっているので、再度APC関係のキャッシュを検証してみました。

ただし、今回はAPCを使わずにopcacheを利用することにしました。

opcacheは、APCのPHPスクリプトのキャッシュにあたる機能を提供しており、Zend社が提供しているので安心して利用できると思います。

また、PHP 5.5からは標準で導入され、APCが5.4までの対応と言うことで必然的にopcacheを利用するしかなさそうです。


導入

yum install php-opcache –enablerepo=remi


設定

vi /etc/php.d/opcache.ini

opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=2
opcache.fast_shutdown=1

opcacheの最適化・チューニング

opcache.save_comments=0
opcache.load_comments=0
opcache.enable_file_override=1

save_comments、不要なコメント部を削除することでキャッシュサイズを小さくできる?
コメントを利用するフレームワークなどを利用してなければ、設定しても良さそうです。


利用してみた感想は、体感的にPHPプログラムの高速化を体験できました。

一度実行してしまえば、次からサクサク動作している感じです。

opcacheの管理画面を確認することどのスクリプトがキャッシュされているのか?

再利用されているのか?

図などで確認することができます。

確認すると128Mのキャッシュサイズでは、直ぐにいっぱいになる感です。

少し遅くなってもいいので、圧縮してキャッシュするようなオプション設定はあるのだろうか?