PHPの高速化(2)
●PHPの高速化(2)●
前回の「PHPの高速化 」では、Zend Optimizer,XCacheを使ってみました。今回は、APCを使ってみましょう。
APCは、コンパイル作業が必要になります。そのためSSHあるいはtelnetに対応しているレンタルサーバーでなければインストールは難しいでしょう。
また、php.iniファイルの操作が必要になりますので、まずは、ご利用のレンタルサーバーが対応可能か確認してみてください。
APCを使った高速化
以下の手順で簡単に設置できます。
- APCのホームページからソースコードのライブラリをダウンロードする。
ダウンロードするファイルは、2010.04現在では、3.0.19(stable) or 3.1.3p1(beta)のいずれかでしょう。
stable:安定版,beta:開発版ですので、問題が少ないのは、もちろんstable:安定版となりますが、効果を最大限期待できるのは、beta:開発版となるでしょう。
- サーバーへダウンロードしたファイルをアップロードする。
ダウンロードしたファイルは、自分のレンタルサーバーへアップロードします。
もちろんレンタルサーバーから直接wgetでダウンロードするのも良いと思います。
※アップロード先は、wwwから見えないところが良いと思います。たとえば、/home/user/lib/apc/ などのディレクトリを作成してアップロードしましょう。
- SSH or telnetでレンタルサーバーへログインし、解凍する。
$ tar xvzf APC-3.0.19.tgz
通常、上記のコマンドイメージで解凍できます。
/APC-3.0.19
というディレクトリが作成されたことと思います。
- APCをコンパイルする。
$ cd APC-3.0.19
$ phpize
$ :
$ ./configure –enable-apc
$ :
$ gmake
$ :
$
通常、上記のコマンドイメージですべて完了です。
/APC-3.0.19/module/apc.so
というファイルが作成されたことと思います。
- php.iniを更新し、APCを有効にする。
php.iniへ以下のように追加します。
2行目のディレクトリは、上記でアップロードしたディレクトリを指定します。extension_dir=/home/user/lib/apc/APC-3.0.19/modules/ extension=apc.so apc.enabled = 1 apc.mmap_file_mask = /home/user/lib/apc/temp/apc.XXXXXX
ディレクトリ名は、各環境に合わせて設定しましょう。
/home/user/lib/apc/temp というディレクトリは、適当なテンポラリディレクトリです。
誰でも書き込めるようにディレクトリの属性を設定をしておきましょう。
最後に以下のように記述したphpファイルをWEBから見えるところへアップロードしWEBから表示させてみましょう。
<?php echo phpinfo(); ?>

このような表示がなされればOKです。
※通常、php.iniの編集は、コントロールパネルから行えるようになっていると思いますので、そのページから編集しましょう。
共用サーバーの場合、コントロールパネルから編集・保存を行うと自動的にapacheへphp.ini情報を読み込むようになっているはずですからね。
- APCが動いているか確認してみる。
APCが動作しているかどうかは、先のphpinfoでも確認できます。さらに、詳細に動作を確認するためのphpファイルが用意されていますので、それを使ってみましょう。
先の解凍したディレクトリ/APC-3.0.19/にapc.phpというファイルがありますので、WEBサーバーから見えるところへコピーしましょう。
例)
$ cp /home/user/lib/apc/APC-3.0.19/apc.php /home/user/www/.
apc,phpのユーザ名とパスワードを変更しましょう。
apc,phpに以下のような行があると思いますので、ユーザ名、パスワードをそれぞれ設定しましょう。
先のphpをWEBからアクセスすると以下のように見えるはずです。defaults('ADMIN_USERNAME','user'); // Admin Username defaults('ADMIN_PASSWORD','password'); // Admin Password - CHANGE THIS TO ENABLE!!!
この記事を読んだ人は次の記事も読んでいます:


へどうぞ。(お試し期間が10日あります。)
からどうぞ。(お試し期間が14日あります。)
(4.50)
(4.44)
(5.00)
(1) ...
(2) ...
ボタンをクリックすることで、レンタルサーバー、ドメインレジストラを評価いただけます。

2010年4月23日, 9:05 AM
共用のレンタルサーバーでは、あまり意味がないでしょう。
これは、デフォルトで32MBのメモリを利用して、そこにPHPのコンパイル済みのデータをキャッシュしていきます。
共用のレンタルサーバーでは、おそらくほとんどのサーバーで32MBのメモリを常時確保できないでしょう。
たぶん・・・。なので、たぶん、あまり意味がないような気がします。
但し、自宅サーバーでメモリだけはふんだんにあるというサーバーは、CPUが倍増したような速度を体験できると思います。管理人もおんぼろ自宅サーバーで、あきらかに早くなったなという体感をしましたので・・・。
2010年10月8日, 5:17 AM
ここで試しているレンタルサーバーは、さくらインターネットの共有レンタルサーバー(さくらインターネット(プレミアム))です。
今度、新しく出たさくらインターネットのVPS
なら、お試し期間で試してみたところ、このAPCは、うまく機能しましたね。
まあ、VPSですから、サーバー丸ごとと同じですから、当然と言えば当然ですけどね。
とりあえず、月額¥980ですから、下手に自宅サーバーたてるよりも安上がりです。

とりあえず、お試し期間2週間ありますから、試されると良いと思います。
さくらインターネットのVPSホームページへ
2010年10月18日, 10:55 AM
[...] APCをインストールします。 APCは、phpのpeclを使います。 $ pecl install apc downloading APC-3.0.19.tgz … Starting to download APC-3.0.19.tgz (115,735 bytes) …………………….done: 115,735 bytes 47 source files, building running: phpize Configuring for: PHP Api Version: 20041225 Zend Module Api No: 20060613 Zend Extension Api No: 220060519 Use apxs to set compile flags (if using APC with Apache)? [yes] : yes building in /var/tmp/pear-build-naru/APC-3.0.19 running: /var/tmp/APC/configure –with-apxs checking for egrep… grep -E : : : Build process completed successfully Installing '/usr/lib64/php/modules/apc.so' install ok: channel://pecl.php.net/APC-3.0.19 configuration option "php_ini" is not set to php.ini location You should add "extension=apc.so" to php.ini 以上で、インストール完了です。 格安レンタルサーバーでは、このAPCは、もし、インストールできたとしても、ほとんど意味がありません。 APCは、メモリ上にコンパイル済みphpバイナリデータを持とうとします。 それは、格安レンタルサーバーでは、みんなで使う共有サーバーが基本ですから、コンパイル済みphpバイナリデータを書き込むためのメモリを確保できないんですね。 しかし、自宅サーバーなら話は違います。 (このあたりが、自宅サーバーのおいしいところで)自宅サーバーは、自分が専有しているのですから、すべての権限は自分で決めれます。 メモリに余裕があれば、思う存分APCの効果を試せます。 実際に試すとわかるんですけど、このAPCは、かなり体感速度が向上します。是非、お試しを。 参考記事: ・「PHPの高速化」 ・「PHPの高速化(2)」 [...]
2011年9月21日, 12:06 AM
[...] PHPの高速化(2) | phpとmysql が使えるおすすめ格安レンタルサーバー比較 [...]