Alternative PHP Cache (APC)について(XAMPP)
apache, PHP, xampp
APC(Alternative PHP Cache)に出会った!
こんな便利なものがあるなんてヽ(´Д`;)ノ
知らなかった。。
そう!キャッシュ機能!! な~んだ!そんなことなら前から知ってるよ!
と思ったあなた!!キャッシュにも色々種類があるって知ってましたか?
俺は恥ずかしながら、知りませんでした。。 今回注目のキャッシュ機能はこのタイトルにもなっている「APC」です。
キャッシュの種類
先程もキャッシュにも色々種類があると伝えましたが、
そもそもキャッシュって何??と疑問に思った事ありませんか?
俺は、なんとなく概要は知ってるけど、詳しくは知らないな。って感じでした。 キャッシュとは…使用頻度の高いデータを高速な記憶装置に蓄えておくことにより、いちいち低速な装置から読み出す無駄を省いて高速化すること。また、その際に使われる高速な記憶装置や、複製されたデータそのもののこと。
ある領域から他の領域へ情報を転送する際、その転送遅延を極力隠蔽化させ転送効率を向上させるために考案された記憶階層の実現手段である。-wiki- となっていいます。 キャッシュ(cache)とは元々、貯蔵物や隠してある貴重品、隠すなどの意味があります。語源は、フランスの【隠す】の意と紹介されております。
簡単に言えば、
ある動作を行ったときコピーを用意して同じ動作が行われた場合、(ある動作)を一から開くのではなく、そのコピーを開いた方が早い!!
これがキャッシュです! 皆さんのPCに導入されているハードディスクのキャッシュやブラウザーのキャッシュ。
キャッシュは便利なので、ネット業界ではいたるところにあります。 サーバーキャッシュは、サーバーを見に来てくれた人に対してのキャッシュ。(HTTPプロキシサーバ)
DBキャッシュは、データベース上でのキャッシュ。 PHPの人気フレームワークの「Smarty」にもファイルのキャッシュを作成できます。 閲覧されたページ(HTML)等をキャッシュとしてサーバーに保管しておくのです。同じページが読み込まれた場合、キャッシュされたページを表示すれば早いのです!
APC(Alternative PHP Cache)について
ここまでのハードディスクやサーバー、ファイル(HTML)等は俺も知っていたのですが、【APC】(Alternative PHP Cache)は知らなかったです。
APC:マニュアル http://php.net/manual/ja/book.apc.php Alternative PHP Cache (APC) は、PHP の実行コードをキャッシュする仕組みで、 フリーかつオープンに使用できます。PHP の中間コードのキャッシュ・最適化を行うための、 フリーでオープンかつ堅牢なフレームワークを提供するということを目標としています。 (
PHP: 導入 – Manual ) つまり、PHPのスクリプトを最適化してコンパイルされた状態でデータをキャッシュし、以後同じデータにアクセスがあった際、そのキャッシュを利用することでスクリプトの実行速度を高速化させるためのものです。
PHPのファイルをキャッシュするということです!
HTMLやDBのキャッシュがあるから当然といえば当然ですが、俺は今まで、全く知りませんでした。 APC(Alternative PHP Cache)はPECLの拡張モジュールです。
PECLで提供されているモジュールはCで記述されているため、PHPで記述されたPEARのライブラリよりも高速に動作すると言われています。 また、PEARライブラリはPHPのバージョンアップに伴う再インストールが原則不要ですが、PECLの拡張モジュールはPHP内部のAPIに依存するため、PHPのバージョンアップに伴いAPIが変更された場合、再コンパイルが必要です。
PECLの拡張モジュールのインストールには、PEARの”pearコマンド”と同様に”peclコマンド”が用意されており、インストール方法もPEARのライブラリと同じようにすることが可能ですが、”インストール後、設定ファイル(php.ini等)にextensionでインストールしたモジュールを指定する必要がある”といった違いがあります。
サーバーでいきなり動かすのは怖かったから、まずは自分のPCに入っているXamppにて動作確認。
自分の環境
OS: Windows7 Xampp: win32 1.8.1 Xampp-Control: v3.1.0 (xamppのコントロール画面に表示されているもの。xamppのバージョンじゃないよ) PHP: 5.4.7 まずは「APC」のダウンロード
http://pecl.php.net/package/APC にアクセスして俺は2014/12現在の最新版のDLLをクリック。
APC-3.1.13.tgz (167.6kB) DLL |
ページが変わり、またよくわからない英語がズラズラと…。。
下記の方に
「DLL List」とある。
自分の使っているPHPのバージョンにあったファイルを元にダウンロード
(俺はPHPのバージョンが5.4.7)のため、
(5.4 Thread Safe (TS) x86)をクリック。
php_apc-3.1.13-5.4-ts-vc9-x86.zipがダウンロードされる。
セットアップ
php_apc-3.1.13-5.4-ts-vc9-x86.zipを解凍後、何個かファイルができますが、使用するのは
「php_apc.dll」のみです。
php_apc.dllファイルをxamppの中にあるPHPフォルダの中のextフォルダ内にコピー。
(D:\xampp\php\ext)
コピーし終わったら、PHP側からこのオプション使うよ!って認識してもらうためにPHPの設定ファイル(php.ini)ファイルの一部を変更する。 php.iniに以下の一行を追記する。 Windows Extensions欄の最後に下記を追加。
extension=php_apc.dll APCが有効になっているのかの確認。 確認はphpinfoで行う。下記のように【
apc】の項目が表示されればOK!!
APCのコントロールパネルの導入
簡単にAPCを管理するためにコントロールパネルを導入しましょう
http://pecl.php.net/package/APC/3.1.13/windowsにアクセスしてファイルをダウンロード。 ダウンロードされた
「APC-3.1.13.tgz」zipを解凍すると、「APC-3.1.13」って言うフォルダができる。
フォルダの中には何やらいっぱいファイルがあってよくわからない。。 フォルダの中にある「apc.php」がある。
それをxmappのブラウザーで確認できるページにコピー。
(ちなみに俺はDフォルダにxmappが入っているため、下記のようになる。)
D:\xampp\htdocs\apc.php コピー後ファイルを開いて以下の行を任意のユーザー名とパスワードに変更し、コンパネのIDとpassを設定する。
defaults(
'ADMIN_USERNAME'
,
'apc123'
);
defaults(
'ADMIN_PASSWORD'
,
'password'
);
以下のURLにアクセスするとIDとPASSを要求されるの、上記の設定で変更したIDとPASSでログインする。 localhost/apc.php

上のような管理画面が表示されます。
- System Cache Entries
- Per-Directory Entries
でキャッシュされているファイルを確認でき、 clear opcode cache でキャッシュファイルの全削除を行うことができます。
参考サイト:
http://dim5.net/windows-server/php547-windows-apc.html http://d.hatena.ne.jp/takaya030/20140222/1393081393 http://blog.still-laughin.com/archives/2012/02/windows732bitxa.html