Mediawikiにmemcacheを導入
少し前からmediawikiを使っているのですが、こいつはmemcacheが使えるとの事で最近話題騒然のmemcacheを導入してみました。
memcacheを少し勉強する必要もあったのでちょうど良かった。
そして、こいつ速い!
memcache++
キャッシュをメモリ上に持つので高速なアクセスが可能です、また複数代台のサーバで構成する事も出来るので使えそうな感じ。
セッション周りとかいいかも。
で、Ubuntu導入方法のメモ。
PHPのextensionを入れようとしたら、peclがなぜかエラー吐きまくったので、PHPextensionはソースから入れてみた。
memcacheのインストール
sudo apt-get install memcached
以上
PHPextensionのインストール
本当なら
sudo pecl install memcahce
でいいはず。
でも、出来ないから
http://pecl.php.net/package/memcache
で最新の物をDL。
今回は、memcache-3.0.1.tgzを使いました。
sudo wget http://pecl.php.net/get/memcache-3.0.1.tgz
sudo tar xzvf memcache-3.0.1.tgz
cd memcache-3.0.1/
sudo phpize
sudo ./configure
sudo make install
php.iniへ追加
memcache.soを追加します。
php.iniってどこにあるんすか?
という場合には
php --ini
と入力すると
Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File: /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed: /etc/php5/cli/conf.d/memcache.ini,
/etc/php5/cli/conf.d/mysql.ini,
/etc/php5/cli/conf.d/mysqli.ini,
/etc/php5/cli/conf.d/pdo.ini,
/etc/php5/cli/conf.d/pdo_mysql.ini
こんな感じで出力されます。
上から順番に読み込まれますので、/etc/php5/cli/php.iniに追記すればいいです。
上手く追加されているか確認する時は
php -mで現在読み込まれているextensionが表示されます。
その中にmemcacheとあればOKです。
記述方法は
extension=memcache.so
です。
個人的にはphp.iniよりも、conf.d/中にmemcache.iniと専用のファイルを作成してその中に記述した方がいいかと思います。
- もし記述しても読み込まれない場合は
pecl config-show
と入力し、PHP extension directoryの項目にmemcache.soが存在するか確認し、もし無かったら、memcache-*/modules内にあるmemcache.soをコピーしてみて下さい。
mediawikiの設定
まずは、memcacheの使うPortを確認します。
/etc/memcached.conf
を開き、-pと書かれている箇所の番号がPort番号です。
ここでmemcacheの設定が可能です。
memcacheを起動します。
/etc/init.d/memcached start
mediawikiをインストールしたディレクトリ中のLocalSettings.phpを開きます。
以下の項目をこのように編集します。
$wgMainCacheType = CACHE_MEMCACHED;
$wgMemCachedServers = array('127.0.0.1:11211');
$wgMemCachedServersのアドレスとPort番号は先ほどmemcacheの設定ファイルで確認or設定したものを使用します。
以上で設定完了です。
memcacheを使って上手くパフォーマンスをあげたいです。