PHP7 & APCu 的搭配和优化

故事

APCu 是老牌 PHP 字节码和对象缓存 缓存器 APC 的分支,具体由来还得讲个故事。

首先提一下,PHP 如果公用多个缓存器是会冲突的,例如同样都是字节码缓存器,OPcache 和 eAccelerate 同时安装就会起冲突甚至报错;而 XCache 同时有字节码缓存器和对象缓存,和 OPCache 共存也是会起冲突的。

在 PHP 5.5 之前是没有 OPcache 这个缓存器的,因而 PHP 下有 eAccelerate、XCache、APC 等几大著名的缓存器,后来 Zend 官方开发了 PHP 的字节码缓存器并且拥有极佳的性能表现在 PHP7 上更是不可或缺的存在。因为单纯只有 字节码 缓存器的 eAccelerate 便落寞了。而 XCahe 还是有更新但是在 PHP7 发布后还是停滞出新了很久。

而 APC 本来拥有 字节码缓存和对象缓存,后来便删除了字节码缓存。又将原有的系统缓存和用户缓存删去了系统缓存,保留了拥护缓存,因此 APCu = APC User 便是这么来的。从此 APCu 可以在 PHP7 下继续稳定存在,并且不起冲突。

软件源安装

如果是通过系统软件库安装的朋友,可以添加在 remi 、dotdeb、ppa 等软件源来通过 yum/dnf 或者 apt-get 安装 php7 和 apcu

因为 remi 、dotdeb、ppa 几乎都有多个 PHP 可以安装,所以我们可以通过搜索来判断自己需要安装的软件名称。

例如 CentOS:

yum search apcu

看哪一个的 apcu 版本是大于 5.1.0 的就选择哪个进行安装。

编译安装

wget http://pecl.php.net/get/apcu-5.1.3.tgz 
tar xzf apcu-5.1.3.tgz 
cd apcu-5.1.3 
phpize 
./configure --with-php-config=/usr/local/php/bin/php-config 
make && make install

大致安装流程是如此,不同安装环境其中的 --with-php-config=/usr/local/php/bin/php-config 文件地址不同哟!

然后在 php.ini 文件中添加,相关的 acpu.so 即可!

兼容性

因为 APCu 5.1.0 开始,不再使用 apc_ 相关语句来识别了,而使用 apcu_ 但是一些软件并没有跟进,所以我们还需要 apcu_bc 来兼容旧的的语句。

安装方法和上述两种相同。

发表评论

发表评论

*

沙发空缺中,还不快抢~