[PHP] PHP5.3でAPC3.1.3をインストール

2009年8 月14日  |  Written by matsumoto  |  under PHP Yahoo!ブックマークに登録    はてなブックマーク - [PHP] PHP5.3でAPC3.1.3をインストール

PHP5.3自体のインストールについては
[PHP] CentOS5.3 で PHP5.3をインストール(YUM風オプションで)をご覧下さい。


大変お久しぶりの更新です、DQ9をする暇も無く天変地異と闘っています。

PHP5.3がリリースされ、1ヵ月半が経ちましたが、PHP5.2までには無かった機能が山盛りですごい事になっています。
LL言語の中では今一番注目しています。

とくに 「遅延静的束縛(Late Static Bindings)」と「ガベージコレクション」にドキドキしつつ、以下2つの点に大注目しています。

遅延静的束縛(Late Static Bindings)

クラス関数で、継承先のクラスを参照できるので、ORマッパでCDBIっぽい動きを直接指定できます。

今までは、継承先で継承元のクラス関数を使うためには

$blog_article = new Data::Blog::Article;
$blog_article_entries = $blog_article->retrieve_by_user($user);

などのような書き方をしていましたが、

"static"キーワードを利用する事で

$blog_entries = Data::Blog::Article->retrieve_by_user($user);

等の様な書き方が出来るようになります。

ざっくりしすぎな説明なので、次回もう少し深く解説したいと思います。

ガベージコレクション

ORマッパやMVCなどで特に起こしやすい、メモリリークですが
PHP5.3ではいい感じに処理してくれている模様です。

PHP5.3をインストールしてあるデフォルトの状態で有効になっており、
メモリリークを起こしている処理をある程度貯まった段階で開放しているようです。

また、新たに加わっている関数 gc_collect_cycles ですが、明示的にGC(ガベージコレクション)を開放してくれるとのことなので、
現在MVCの最後の処理(1サイクルが終わるタイミング)で毎回実行させるようにして、効果測定を行っています。
こちらはもう少し調査したらUPする予定です。

APC

アクセラレータのPHP5.3対応状況

PHPのアクセラレータは主に eacceleratorAPCXCache 等かと思います。

eaccelerator

eacceleratorは最新版の0.9.6-rc1 を試してみたのですが、インストールはできるのですが、PHPの起動でエラーになってしまい、ベンチマークまでいけませんでした。

公式ページでは Support for PHP 5.3. となっているのですが・・・自分の環境がおかしいのかもしれません。

APC

pecl のRSSFeedに本日登録された APC3.1.3 ですが、
make時に apc_bin.h が無いと怒られます。

peclのサイトからダウンロードできるtgzのパッケージには確かに該当するファイルが無く、makeが通らないので
PHPのsvnサイトから apc_bin.h apc_bin.c の2つをダウンロードして利用しました。
(※何故か同一バージョンのsvn管理下にはあるようです。)

cd /usr/local/src/APC-3.1.3

wget http://svn.php.net/viewvc/pecl/apc/tags/APC_3_1_3/APC_3_1_3/apc_bin.h?revision=287245&view=co apc_bin.h
wget http://svn.php.net/viewvc/pecl/apc/tags/APC_3_1_3/APC_3_1_3/apc_bin.c?view=co&content-type=text%2Fplain  apc_bin.c

phpize
./configure --enable-apc
sudo make install

これでhttpdを再起動して phpinfoに

apc

APC Support enabled
Version 3.1.3
MMAP Support Enabled
MMAP File Mask no value
Locking type pthread mutex Locks
Revision $Revision: 286798 $
Build Date Aug 14 2009 18:22:56

と、3.1.3が表示されればまず抱え込めている状態になります。

APCの前のバージョンでは、原因不明なCoreDumpに悩まされたので・・・今回は少し調査しつつやってみたいと思います。

XCache

XCacheはまだ試してないですが、公式サイトではPHP5.3のサポートのアナウンスがあっているようです。

Zend Optimizer

APCではないのですが、 Zend Optimizer もPHP5.2までの対応となっているので、5.3の対応が待たれます・・

現在コメントはありません | コメントの投稿はこちら

コメントを書き込む

コメント本文

※コメントのフォーム内で以下のタグがご利用いただけます
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

私はチーム・マイナス6%です