【Linux】APCを使ってPHPの高速化を図る
環境を構築している時にAPCってのがあった。 なんだろう・・・って思ってたんですが 昔よくAPCって聞いたなぁとでも、PHP5.5からは関係ないから気にしなくていいよみたいなことがあって 調べてなかったので。
APCっていうのはなんぞやっていうのがPHPのドキュメントにありました。
Alternative PHP Cache (APC) は、PHP の実行コードをキャッシュする仕組みで、 フリーかつオープンに使用できます。 PHP の中間コードのキャッシュ・最適化を行うための、 フリーでオープンかつ堅牢なフレームワークを提供するということを目標としています。
要は都度中間コードでコンパイルを行っているんだけど メモリにキャッシュとして保存して、高速化を図るよって話みたい。
ちなみにPHP5.5からはデフォルトでOPcacheっていうのがあるのでAPC使わなくても高速みたい。 だから使わなくなるって話だったのか。 OPcacheについてはまた機会があれば調べようかな。 まずはAPCインストールからだなぁと。
PHPのバージョンが5.4なので、APCについては3.1.10以降じゃないといけないみたい。 今回はbetaですが、最新版の3.1.13を探してきました。
# wget http://pecl.php.net/get/APC-3.1.13.tgz # tar zxvf APC-3.1.13.tgz # cd APC-3.1.13 # phpize # ./configure --enable-apc --with-php-config=[php-configのPath] # make # make test # make install
さらっとソースからのインサートに必要なコマンドを羅列しました。 ./configureで指定している--wuth-php-config=についてはphp-configのPathを入れてください。 わからない場合は
find / -name '*php-config*' -print
上記のコマンドを実行すればpathが出てくると思います。 自分の場合は/usr/bin/php-configがPathでした。
次にAPCを有効にするためにphp.iniの設定に追記します。
;;;;;;;;;;;;;;;;;;; ; Module Settings ; ;;;;;;;;;;;;;;;;;;; ; add apc extension=apc.so
どこに書いてもOKです。 とりあえず自分はModule Settingsの中に書きました。
設定が終わったらApacheを再起動します。
# service httpd restart
設定が反映されているか確認します。
php -m | grep apc apc
apcと表示されれば設定が有効になっています。
出てこない場合は、間違ったphp.iniに設定を書いている可能性があります。
APCを使うと実行速度は早くなるけど、キャッシュする時間を長く取ると高速化はできても ソースコードを変更した時の反映に時間がかかります。 その場合APCキャッシュをクリアする必要があるみたいです。 この辺は実際使ってみてからかな。