<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>bluegold &#187; xcache</title>
	<atom:link href="http://blog.bluegold.me/tag/xcache/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.bluegold.me</link>
	<description>OpenSolaris と MacBook で自宅ネットワークを構築するメモ</description>
	<lastBuildDate>Thu, 26 Aug 2010 14:38:53 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>XCacheの管理について</title>
		<link>http://blog.bluegold.me/2009/06/xcache-administration-and-monitor/</link>
		<comments>http://blog.bluegold.me/2009/06/xcache-administration-and-monitor/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 17:23:02 +0000</pubDate>
		<dc:creator>bg</dc:creator>
				<category><![CDATA[技術]]></category>
		<category><![CDATA[munin]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xcache]]></category>

		<guid isPermaLink="false">http://blog.bluegold.me/?p=222</guid>
		<description><![CDATA[XCacheの管理画面を表示するための設定方法と、XCache を監視するための munin 用プラグインについて]]></description>
			<content:encoded><![CDATA[<p>前に書いた<a href="/2008/11/php-xcache-wordpress/">WordPressでXCacheを有効にする</a>について、「記事の通りにやったのに動かない！」と <a href="http://higash.net">HiGash.Net</a>の中の人に怒られたので、書きもれていた管理ページの表示方法について簡単にまとめます。
</p>
<p style="margin-top:2em;">「動かない」と言われた時は「後で書いておくよ」と軽い気持ちで答えてしまっていましたが、よく考えると XCache の管理ページなんてインストールした時に表示させただけで、その後はすぐに <a href="http://munin.projects.linpro.no/">munin</a> での監視を始めてしまったので、あまり記憶に残っていません。nginx 側で BASIC 認証を設定していたのが原因だったかで、うまく動かなくて苦労した記憶はあるのですが。（munin の設定については後述）
</p>
<p>前に書いた記事で php.ini の設定を載せましたが、管理者の設定が抜けていました。</p>
<pre class="brush: bash;">
[xcache.admin]
xcache.admin.auth = On
xcache.admin.user = &quot;admin&quot;
; xcache.admin.pass = md5($your_password)
xcache.admin.pass = &quot;d41d8cd98f00b204e9800998ecf8427e&quot;
</pre>
<p>パスワードは MD5 でハッシュを計算しておく必要があります。<br />
コードとしては下のような簡単なものですが、<a href="http://blog.bluegold.me/pass.php?password=hoge">このURL</a>でハッシュを計算するものを作ってみました。</p>
<pre class="brush: php;">
&lt;!--

http://blog.bluegold.me/pass.php?password=XXXX

XXX の部分にパスワードを入力します
--&gt;
xcache.admin.pass = &quot;&lt;?php echo md5($REQUEST[&quot;password&quot;]); ?&gt;&quot;
</pre>
<p><span id="more-222"></span></p>
<p>
php.ini に管理者の設定を行った後で XCaxhe に付属の管理ページ(xcache.php)を開くと、パスワード認証をした後で管理ページが表示されると思います。<br />
<img src="http://wp-cdn.bluegold.me/2008/11/xcache-300x214.png" alt="xcache" title="xcache" width="300" height="214" class="size-medium wp-image-85" />
</p>
<p>XCacheに付属の管理ページではキャッシュされているスクリプトや、使用メモリ、キャッシュヒットやキャッシュミスの回数などの基本的な情報を調べることはできますが、得られる情報はあくまでも「その時点」での情報でしかないので、キャッシュミスが増えているか等は分かりません。
</p>
<p>このサイトでは munin を利用して XCache のキャッシュ状況をモニターしています。munin はサーバなどをモニタリングして統計画像を作るためのソフトで、この種のソフトとしては非常に簡単に設定を行うことができます。監視用のプラグインは比較的用意に作ることができ、既に多くのソフトウェアに対応しています。
</p>
<p>XCache用のプラグインは標準ではインストールされていないので、<a href="http://www.ohardt.net/dev/munin/">ここ</a>から munin_xcache-0.2.tar.bz2 をダウンロードします。インストールは他のプラグインと同様に出来ますが、このプラグインは少し変わっていて「監視される側の php ファイル(munin_xcache.php)」 も一緒に入っています。こちらはウェブサーバーから見える場所においておく必要があります。
</p>
<p>
<img src="http://wp-cdn.bluegold.me/2009/06/localhost-xcache_hits-week.png" alt="munin のグラフ" title="localhost-xcache_hits-week" width="489" height="295" class="alignright size-full wp-image-230" /><br />
しばらくすると、このようなグラフが出来てきます。
</p>
<p>
6/16 の晩に WordPress 2.8 にアップグレードしたので、そこからキャッシュミスが多くなってきています。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluegold.me/2009/06/xcache-administration-and-monitor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XCache を複数の WordPress で使う場合の問題</title>
		<link>http://blog.bluegold.me/2009/05/wordpress-xcache-object-cache-collision/</link>
		<comments>http://blog.bluegold.me/2009/05/wordpress-xcache-object-cache-collision/#comments</comments>
		<pubDate>Sun, 03 May 2009 16:24:58 +0000</pubDate>
		<dc:creator>bg</dc:creator>
				<category><![CDATA[技術]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[xcache]]></category>

		<guid isPermaLink="false">http://blog.bluegold.me/?p=174</guid>
		<description><![CDATA[複数のブログを持つサイトで XCache Object Cache Plugin for WordPress を使用すると、サイト間でログイン情報などのキャッシュが混ざってしまう問題について]]></description>
			<content:encoded><![CDATA[<p><a href="/2008/11/php-xcache-wordpress/">以前のエントリ</a>で WordPress のオブジェクトキャッシュを XCache の保存する方法について書きましたが、その後問題が発生したのでメモ。
</p>
<p>複数の WordPress を１つのホストで稼働させる際に <a href="http://dougal.gunters.org/blog/2008/08/29/xcache-object-cache-plugin-for-wordpress-25">XCache Object Cache Plugin for WordPress 2.5+</a> を使用すると、オブジェクトキャッシュが混ざってしまうようです。</p>
<p><span id="more-174"></span></p>
<p>このサイトでは<a href="http://blog.bluegold.me">http://blog.bluegold.me</a>用と<a href="http://mama.bluegold.me">http://mama.bluegold.me</a>用に２つの WordPress を稼働させています。それぞれ専用のデータベースを持つ独立したブログになっていますが、双方でオブジェクトキャッシュを有効にしたところ、しばらくして blog.bluegold.me 側の WordPress の管理コンソール(wp-admin)にログインできなくなりました。
</p>
<p>XCache をインストールしてからは時間が経っていたので関係しているとは全く思わずに、MySQL 側でパスワードを何度も更新してログインを試みたり、WordPress <del datetime="2009-05-04T13:31:10+00:00">2.7.2</del> 2.7.1 にバージョンを上げたばかりだったので、仕様が変わったのかと調べてみたりしたものの原因は分かりませんでした。
</p>
<p>管理コンソールいろいろなIDとパスワードを入力しているうちに、blog.bluegold.me のユーザ名(bg)を入力すると「ユーザ名が違います」を表示されるのに、mama.bluegold.me 側のユーザ名(papa)を入力すると「パスワードが違います」と表示される事に気がつきました。ありえない事が起きているのが分かってきたので、試しに<strong>papa の正しいパスワード</strong>を入力してみたところログインに成功し、<strong>bgのダッシュボード</strong>が表示されました。
</p>
<p>ここでキャッシュが悪さをしている事がわかったので、オブジェクトキャッシュの使用を止めて、キャッシュをクリアするために PHP の FastCGI のプロセスを再起動しました。
</p>
<p>調べてみると、やはり同じような問題を抱えている人はいるようで、以下のサイトに詳しく書かれていました。ユーザ情報が混在するのは仕様なんですかね．．．<br />
<a href="http://jamescoletti.com/multiple-wordpress-installs-and-object-cache-collision">http://jamescoletti.com/multiple-wordpress-installs-and-object-cache-collision</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluegold.me/2009/05/wordpress-xcache-object-cache-collision/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPressでXCacheを有効にする</title>
		<link>http://blog.bluegold.me/2008/11/php-xcache-wordpress/</link>
		<comments>http://blog.bluegold.me/2008/11/php-xcache-wordpress/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 06:20:38 +0000</pubDate>
		<dc:creator>bg</dc:creator>
				<category><![CDATA[技術]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[xcache]]></category>

		<guid isPermaLink="false">http://blog.bluegold.me/?p=83</guid>
		<description><![CDATA[PHP で XCache を有効にする方法と、WordPress のデータをキャッシュするプラグインの説明。]]></description>
			<content:encoded><![CDATA[<p><a href="/2008/11/nginx-php-fastcgi/" title="nginxでphpを利用する">前回</a>の記事でPHPの設定は完了していますが、ついでにPHPアクセラレータも導入してみます。PHPアクセラレータはPHPの実行時に中間的に生成されるバイトコードをキャッシュや最適化を行う事により、実行時のロスを減らす仕組みです。</p>
<p>
PHPアクセラレータには<a href="http://eaccelerator.net/" title="eAccelerator">eAccelerator</a>や<a href="http://pecl.php.net/package/APC" title="APC">APC</a>などいろいろとあるようですが、今回は使った事のない<a href="http://xcache.lighttpd.net/" title="XCache">XCache</a>を使ってみます。XCacheはバイトコードのキャッシュの他にPHPの変数をキャッシュする機能があるので、この機能をWordPressで使うように設定も行います。
</p>
<p>
XCacheのビルドは以下の通り簡単に行うことができます。</p>
<pre class="brush: bash;">
wget http://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.gz
gzip -dc xcache-1.2.2.tar.gz | tar xvf -
cd xcache-1.2.2
./configure --enable-xcache
make
make install
</pre>
</p>
<p><span id="more-83"></span>
<p>
php.ini ファイルにXCacheの設定を記述します。<br />
ソースに付属しているサンプルの xcache.ini からあまり変えていません。</p>
<pre class="brush: php;">
[xcache-common]
zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20060613/xcache.so

[xcache]
xcache.shm_scheme =        &quot;mmap&quot;
xcache.size  =               22M
xcache.count =                 1
xcache.slots =                8K
xcache.ttl   =             86400
xcache.gc_interval =         600

xcache.var_size  =            2M
xcache.var_count =             1
xcache.var_slots =            8K
xcache.var_ttl   =             0
xcache.var_maxttl   =          0
xcache.var_gc_interval =     300

xcache.test =                Off
xcache.readonly_protection = Off
xcache.mmap_path =    &quot;/dev/zero&quot;
xcache.coredump_directory =   &quot;&quot;
xcache.cacher =               On
xcache.stat   =               On
xcache.optimizer =            On
</pre>
<p>xcache.size は使用するアプリケーションの種類によって調整した方がよいと思います。XCacheはeAcceleratorなどと違い、キャッシュは全てメモリ上に持つようなので大きめに設定しておいた方が良いかもしれません。
</p>
<p>バイトコードのキャッシュは以上の設定でphpのFastCGIを再起動するだけで使用出来ますが、変数のキャッシュを利用するにはアプリケーション側で対応する必要があります。WordPressには<a href="http://neosmart.net/dl.php?id=12" title="XCache for WordPress">XCache for WordPress</a>というプラグインがあるようですが、最近のバージョンのWordPressでは動作しないようなので、<a href="http://dougal.gunters.org/blog/2008/08/29/xcache-object-cache-plugin-for-wordpress-25" title="XCache Object Cache Plugin for WordPress">XCache Object Cache Plugin for WordPress 2.5+</a>を使用する事にしました。
</p>
<p>
<img src="http://wp-cdn.bluegold.me/2008/11/xcache-300x214.png" alt="xcache" title="xcache" width="300" height="214" class="size-medium wp-image-85" style="float:right;" /><br />
インストールは簡単ですが、XCache Object Cache Plugin for WordPressは通常のWordPressのプラグインとはインストールするパスが異なるので注意が必要です。プラグインのファイルは object-cache.php １つだけで、これをWordPressのコンテントディレクトリ（通常は xp-content ディレクトリ）に置きます。私も最初は説明を読まずに他のプラグインと同じように xp-content/plugins ディレクトリに置いて、しばらく悩みました。</p>
<p>このようにバイトコードと変数の双方がキャッシュされている事を確認出来ます。これだけで体感出来る程度には速度が向上するので、導入する価値はあると思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluegold.me/2008/11/php-xcache-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
