|
PECLに登録されているAPC(Alternative PHP Cache)は、PHPの中間コードのキャッシュや最適化を行う拡張モジュールです。APCは前に触ったことがあり、それがいつだったか調べてみたら、なんと2002年3月!使っていた環境は、PHP4.1.1+APC1.1.0。。。にもかかわらず、何だかGIGAZINEからリンクされているようで、リンク先としては結構恥ずかしいかも。。。
ということで、再度ざっとまとめることにしました。
使用した環境
まずは確認環境ですが、CentOS4.4+PHP5.2.0です。PHPは以下のようなconfigureオプションを付けてソースからbuildしています。
●PHP5.2.0のconfigureオプション--with-apxs2=/usr/local/apache2/bin/apxs \
--prefix=/usr/local/lib/php5 \
--with-pear=/usr/local/lib/php5/pear \
--with-config-file-path=/usr/local/lib/php5/ini/5.2.0 \
--with-config-file-scan-dir=/usr/local/lib/php5/ini.d \
--enable-zend-multibyte \
--enable-mbstring \
--enable-mbregex \
--with-dom=shared \
--with-gd=shared \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-ttf \
--with-freetype-dir \
--enable-gd-jis-conv \
--with-xsl=shared \
--with-oci8=shared,/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/ \
--with-pdo-oci=shared,/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/ \
--with-pdo=shared \
--enable-sockets=shared \
--with-openssl=shared \
--enable-soap=shared \
--enable-sigchild \
--enable-zip=shared \
--enable-curl=shared \
--enable-json=shared
なお、「--prefix」オプションを付けているため、phpコマンドのパスがデフォルトとは変わっていますが適宜読み替えてください。
インストール
まずはインストールですが、peclコマンドでインストールするのが一番手っ取り早いです。
# pecl install APC
#
peclコマンドでインストールできない場合は、ダウンロード後、以下のようなお決まりの手順でインストールします。2006/11/26現在の最新版はバージョン3.0.12p2です。ちなみに、今回はpeclコマンドでインストールできなかったので、後者の手順を採りました(phpizeでエラーになりました)。
$ tar zxf APC-3.0.12p2.tgz
$ cd APC-3.0.12p2
$ phpize
$ ./configure --enable-apc
$ make
$ su -
# make install
#
インストールが終わったら、拡張モジュールをロードするようphp.iniに追記します。
●iniファイルの編集
:
extension=apc.so
:
最後にApacheを再起動し、phpinfoの画面で正しくロードされている事を確認します。非常に簡単ですね。
設定項目
すでにPHPマニュアルが完訳されているので、設定に関しての情報に不自由することはないと思います。ということで、説明はPHPマニュアルに譲ります ;-)
また、デフォルト値のままでもある程度の規模までは充分に対応できる思います。ただし、PHPマニュアルにもあるとおり、
は、システム規模やハードウェアスペック、システム運用要件などと相談しながら決める必要があります。
●php.iniファイルの設定例apc.shm_size=64
apc.optimization=1
apc.stat=0
APCのWebインターフェース
以前試したAPC 1.1.0(古っ!)だと、apcinfo関数が用意されていました。これは、phpinfo関数のように、APCに関連する情報を一覧表示するHTMLを出力する関数でした。APC 3.0.12では、アーカイブ中にapc.phpというPHPスクリプトが用意され、キャッシュの使用率やキャッシュされたファイルの一覧、キャッシュのクリアを行えるようになっています。eAcceleratorの管理画面と同じですね。
また、GD拡張モジュールがサポートされている場合、次のようなグラフが作成され、視覚的にキャッシュ使用率を確認することができます。
このapc.phpですが、最低限ADMIN_PASSWORDを変更しないと管理者向け機能が利用できませんので、適宜変更しておく必要があります。なお、apc.phpと同じディレクトリに、次のような内容でapc.conf.phpファイルを作成することで、apc.phpの各定数を上書きすることができます。
●apc.conf.phpの例
<?php
defaults('ADMIN_USERNAME','admin');
defaults('ADMIN_PASSWORD','apcadmin');
?>
まとめ
何年かぶりにAPCを試してみましたが、管理系が結構変わってますね。
特に管理画面はPHPスクリプト化されていましたが、モジュール本体をスリム化するのが最近の流れですかね?まあ、管理画面を使わない場合もあるでしょうし、デフォルトで使えてしまうと、セキュリティーホールになる可能性も否定できませんしね。
パフォーマンスについては、別の機会でまとめたいと思います。
|