Opcache 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件,Opcache 的目的在于提高代码的执行效率,Opcache 无论 Redis 还是 Memcached 都需要安装。其中因为 Redis 更新,比 Memcached 快很多,Redis 可以持久化数据,读写数据的效率极高,所以目前文字咖依然使用的是 Redis + Opcache 这个组合来加速。
因为一直使用的是军哥一键 lnmp ,所以该教程主要是针对 lnmp 一键安装包,至于使用其他部署环境的面板唯一的区别就是安装 Opcache 这个步骤略有不同!
1. 启用 OPcache
进入 lnmp 解压后的目录
cd /root/lnmp1.6
执行:
./addons.sh install opcache
Opcache 和 eAccelerator 是冲突的,脚本会自动卸载 eAccelerator 后再安装 Opcache ,回车确认后就会自动安装 opcache 。因为 lnmp1.6 默认是已经安装了 Opcache ,只是没有启用而已,所以上面命令执行速度很快,只要几秒即可完成!
2. 配置 Opcache
打开 php.ini 文件:
vi /usr/local/php/etc/php.ini
php.ini 文件内容较多,在文件最后添加如下代码:
[Zend Opcache]opcache.enable=1 ;Zend Opcache 的开关,关闭时代码不再优化.opcache.enable_cli=1 ;确定是否为 php 的 cli 版本启用opcache.force_restart_timeout=3600 ;从缓存不被访问后,等待多久后(单位为秒)调度重启opcache.memory_consumption=128 ;可用内存,单位:Mb,推荐 128opcache.interned_strings_buffer=8 ;Zend Opcache 暂存池中字符串占内存总量.(单位:MB),推荐为 8opcache.max_accelerated_files=4000 ;可以缓存多少个脚本,命中率低的可以试着提高这个值opcache.fast_shutdown=1 ;打开快速关闭,打开这个在 PHP Request Shutdown 时回收内存的速度会提高,推荐 1
3. 重启 PHP
最后还要运行重启 php 命令:
service php-fpm restart
4. 查看 Opcache 是否开启
1) 在 phpinfo 里面能看到如下图所示,说明 Zend OPcache 已经开启。
这里面最重要的参数是 cache hits
代表缓存命中率,你刷新一次就会增加一次。至于清理缓存,依然通过配置文件配置,具体项目就是 opcache.force_restart_timeout ,通过指定该时间,在多少时间内容该缓存失效;下面的 cache misses
代表为缓存未命中率。
2) 直接输入下面指令
php -m
查看最下面是否出现,出现则表示开启成功!
[Zend Modules]Zend OPcache
5. 卸载 Opcache 组件
卸载命令:
./addons.sh uninstall opcache
教程到此结束!