PHP の MVC フレームワークの1つである CakePHP は、デフォルト設定の場合はその内部キャッシュにファイルシステムが使われています。

もちろんこれでも動くのですが、このキャッシュを memcached(メモリサーバー)にすることで、比較的簡単に高速化を実現することができます。以下は CakePHP 2.x を使う前提ですが、キャッシュに memcached を利用する方法を紹介します。


まずは memcached と、PHP から memcached を利用するための pecl-memcache をインストールしておきます:
# yum install memcached php-pecl-memcache -y

このコマンドが失敗する場合は yum リポジトリが足りていない可能性が高いので、以下のコマンドを実行してから再度 yum install してみてください(RHEL 6.x x86_64 の場合):
# rpm -Uhv http://ftp.riken.jp/Linux/repoforge/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

memcached と pecl-memcache がインストールできたら memcached を起動し、httpd を再起動します:
# /etc/init.d/memcached start
# chkconfig memcached on
# /etc/init.d/httpd restart

これで memcached の用意ができました。では CakePHP 側の設定を変更して、この memcached を利用するようにしてみましょう。app/Config/core.php ファイルを編集し、以下の設定を加えます:
# vi app/Config/core.php

  :
  :
//. デフォルトのキャッシュ設定(Cache::config で始まっている設定)が有効になっていたらコメントで無効にする //. Cache::config( "default", array( "engine" => "File" ) );
:
: //. デフォルトでは memcached にキャッシュするよう設定を追加 Cache::config( "default", array( "engine" => "Memcache", // 保存先は memcache "duration" => 3600, // キャッシュの有効時間は3600秒 "probability" => 100, // キャッシュ再作成率は100%(全て) "prefix" => Inflector::slug( APP_DIR ) . "_", // キャッシュ名のプレフィクスは定数 APP_DIR + "_" "servers" => array( "127.0.0.1:11211" ), // memcached サーバーとポート番号 "compress" => false // キャッシュは圧縮しない ));
: :

では現在までに作成されたキャッシュを全てクリアします:
# cd app/tmp/cache
# rf -rf ./*

この後に CakePHP を使ってみて、app/tmp/cache 以下にフォルダが作成されていないことが確認できれば成功です。