これはなに?
古いPHPを使用しているサービスだと、5.6+にマイグレーションする際にもAPCを使いたいという要望が多い。
PHP5.5+でなぜAPCではなくZend OPcacheやAPCuを使うようになったのか?
そもそもZend OPcacheやAPCuってなんなのさ!
って説明できるようになるために調べてみました。
APCとZend OPcache/APCuの関係
APCが機能として持っている
opecode cache機能とdata cache機能を
PHP 5.5+では
opecode cache : Zend OPcache
data cache : APCu
で提供するようになりました。
そうなった経緯
経緯が綺麗にまとまったサイト。
https://www.devside.net/wamp-server/installing-apc-for-php-5-5
ざっくりまとめるとこんな感じ。
- APC 3.1.14のopecode cache機能に深刻なバグがあり、PHPから排除された。PHP5.3が出た頃です。
その後、
- APCはopecode cache機能を削除して、data cache機能のみを提供するAPCuとなった。
- opecode cache機能は、Zend Optimizer+がOSS化されたもの⇨Zend OPcacheがカバー。Zend OPcacheはPHPに組み込まれた。
PHP5.5が出た頃にAPC⇨Zend OPcache/APCuの流れが加速したワケ
- APC最後の安定版リリース=3.1.13はPHP5.5+では動かないから。