Advent Calendar 5日目 php-fpm is stable?
php の SAPI (Server API) にはいくつか種類があり、 一般的には Apache , Apache 2.0 Handler および CLI がよく使われているのではないかと思います。
現在実行している php が、どの SAPI で動いているのかを調べるには、 php_sapi_name 関数を使います。
あるいは、 phpinfo 関数によって表示される Server API の欄を見ても同様です。
SAPI とは
php 実行元 (主に Web Server) と php の間に挟まれた一種の抽象レイヤーです。
例えば、分かりやすいところで言うと、 Apache 上で実行した phpinfo() と CLI で実行した phpinfo() は、出力のされ方が異なります。 Apache 上では HTML として出力されますが、 CLI ではテキストとして出力されます。
(厳密に言えば、この違いは ext/standard/info.c で SAPI の状態に応じて出力の仕方を変えているだけなので、 SAPI による違いとは言い難いのですが……)
php-fpm
そんな SAPI の一つとして、 fpm (FastCGI Process Manager) というのがあります。
名前の通り、 php を FastCGI として動かせるようにしたものです。
以前、 Webサーバ勉強会で、 nginx X php-fpm という発表をさせていただきまして、
そのときの資料はこちらになります。
まとめのページに、
php-fpmはEXPERIMENTALなので、プロダクションでは使わないようにね!
と書いていたのですが、 実は RC2 になって、 EXPERIMENTAL では無くなっています。
https://svn.php.net/repository/php/php-src/tags/php_5_4_0RC2/NEWS
これでもう安心して php-fpm 使えますね!
まぁ、信じていると(足下を)掬われるのが php なんですが。