PHP5.6へZend APCuをインストールする
はじめに
PHPではオペコードのキャッシュに、ver5.4まではAPC (Alternative PHP Cache)、ver5.5からはOPcacheが採用されている。
OPcacheはAPCに比べパフォーマンス面での改善が図られているが、逆にAPCでは可能だった、コードキャッシュ以外の任意のデータのキャッシュが利用できなくなっている。
代替のキャッシュ機構としてmemcachedなどを使うこともできるが、APCuを使えば、これまでのキャッシュの仕組みをそのまま使うことができる。
名前の通り、APCuはAPCのユーザーキャッシュ部分のみを抜き出したモジュールとなる。
インストール方法
インストール環境
まず、今回の環境は以下の通り。
PECLのアップデート
APCuはPECLを使ってインストールする。
そのため、まずはPECLのアップデートを行う。
$ sudo pecl channel-update pecl.php.net Updating channel "pecl.php.net" Update of Channel "pecl.php.net" succeeded
APCuのインストール
PECLでインストールを行うと、以下の通りエラーが出て失敗する。
$ sudo pecl install APCu
Failed to download pecl/APCu within preferred state "stable", latest release is version 4.0.7, stability "beta", use "channel://pecl.php.net/APCu-4.0.7" to install
install failed
どうやら "stable" 版はなく、 "beta" 版でのインストールが必要になるようだ。
そこで、beta版のインストールを行う。
$ sudo pecl install APCu-beta downloading apcu-4.0.7.tgz ... Starting to download apcu-4.0.7.tgz (118,670 bytes) ..........................done: 118,670 bytes 43 source files, building ...(中略) Build process completed successfully Installing '/usr/lib64/php/modules/apcu.so' Installing '/usr/include/php/ext/apcu/apc.h' Installing '/usr/include/php/ext/apcu/apc_api.h' Installing '/usr/include/php/ext/apcu/apc_cache_api.h' Installing '/usr/include/php/ext/apcu/apc_lock_api.h' Installing '/usr/include/php/ext/apcu/apc_pool_api.h' Installing '/usr/include/php/ext/apcu/apc_sma_api.h' Installing '/usr/include/php/ext/apcu/apc_bin_api.h' Installing '/usr/include/php/ext/apcu/apc_serializer.h' install ok: channel://pecl.php.net/apcu-4.0.7 configuration option "php_ini" is not set to php.ini location You should add "extension=apcu.so" to php.ini
無事、インストールが行われた。
設定ファイルの追加
インストール時に表示されたメッセージに従い、.iniのスキャンディレクトリに設定ファイル apcu.ini を設置する。
スキャンディレクトリはphpinfoで確認できる。
apcu.iniの記述内容は以下の通り。
extension=apcu.so apc.shm_size=32M
確認
phpinfoを見ると、インストールされたことが確認出来る。