Inotify APC Smarty Recompiler

これは何?

PHPの高速化をするにはAPCを使ったりSmartyのオプションを色々変えたりということをすると高速化できます。
特にファイル変更のチェックをはずすと高速化出来ますが、その代わりPHPの利点であるサーバを動かしながら変更を加えるということが
出来なくなってしまいます。


ということで、ファイルの変更チェックオプションは生かしておいて運用するというのもありなのですが、それでは高速化できないよ。
でも、動かしながら変えられないよなんとかならないのかー???


ってことで、ファイル監視は別な人がやるよ。っていうのがこの、Inotify APC Smartyコンパイラなわけです。

Inotify って何?

Linuxでファイルやディレクトリが変更された場合に監視対象としているもののみの通知をしてくれる仕組みです。
PHPでもInotifyを使うライブラリがあるのでPHPでファイル監視プログラムを作ることが出来ます。

APCって何?

APCPHPは実行する前に中間形式に変換されて実行されるのですが、その中間形式を保存しておくことで高速化するPHP拡張です。

Smartyって何?

PHPのテンプレートエンジンです。そんなこと知ってるって?そりゃ失礼しました。

問題点

apcのリコンパイルapachephp上で動かさないといけません。コマンドラインからは動かしてもエラーになってしまいます。
空間が違うからみたい。
対策方法はapache上で常駐してしまうか、リコンパイル部分だけapache上で動く簡単なphpを置くことです。

で、どうやって使うんだ?

APCをインストールします。

参考: http://www.ideaxidea.com/archives/2009/01/php_apc.html

Smartyをインストールします。

参考: http://www.phpbook.jp/smarty/install/

Inotifyをインストールします。

参考: http://ameblo.jp/itboy/entry-10173242939.html

この辺は適当にググッただけなので、色々調べてください。

APCのファイルチェックをはずします。

apc.stat = Off

Smartyコンパイルチェックをはずします。

$smarty = new Smarty();
$smarty->compile_check = false;