lnmp 开启 Opcache 脚本缓存可以提高 php 运行性能,进而提高整体服务器的运行效率。Opcache 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件。今天魏艾斯博客尝试开启这个组件,并希望能够提高 php 性能,因为是第一次尝试,后面经过一段时间服务器运行后再来汇报结果。
为了提高 linux 服务器的运行速度和网站的打开速度,魏艾斯博客前期进行了各种尝试,从各种 wordpress 缓存插件开始折腾,后来发现各种 wordpress 缓存插件在博客流量低(1000IP)的时候,没啥实际意义,反倒会增加服务器负载,于是卸载之。
opcache 这货是 php 自带(php5.5 以后)的加速组件,官方认证且经常更新,所以想要服务器速度飞起来就一定要启用。
一、启用 OPcache 脚本
进入 lnmp 解压后的目录
cd /root/lnmp1.4
执行:
./addons.sh install opcache
此脚本是用来安装 opcache 的,LNMP 1.4 下安装的 PHP 5.5 或更高版本的 PHP 不需要额外安装 OPcache,默认已经安装上但未启用,要执行上面的命令进行开启。
二、配置 Opcache
1、要打开 php.ini 文件,有两种方法,一个是在 SSH 软件中直接编辑,命令如下:
vi /usr/local/php/etc/php.ini
2、 php.ini 文件内容较多,第二种方法是是用 winscp 下载到本地电脑, 再用 dreamweaver 编辑。在文件最后添加如下代码:
[Zend Opcache]
opcache.enable=1 ;Zend Opcache 的开关,关闭时代码不再优化.
opcache.enable_cli=1 ;确定是否为 php 的 cli 版本启用
opcache.force_restart_timeout=3600 ;从缓存不被访问后,等待多久后(单位为秒)调度重启
opcache.memory_consumption=128 ;可用内存,单位:Mb,推荐 128
opcache.interned_strings_buffer=8 ;Zend Opcache 暂存池中字符串占内存总量.(单位:MB),推荐为 8
opcache.max_accelerated_files=4000 ;可以缓存多少个脚本,命中率低的可以试着提高这个值
如果你还有更优化的设置请在下面跟进留言,咱们一起讨论让服务器速度飞起的方法。
三、重启 PHP
最后还要运行重启 php 命令:
service php-fpm restart
在 phpinfo 里面能看到 Zend OPcache 开启了。
这里面最重要的参数是 cache hits,代表缓存命中率;下面的 cache misses 代表为缓存未命中率
四、卸载 Opcache 组件
卸载命令:
./addons.sh uninstall opcache
五、双剑合璧
使用脚本缓存 Opcache 再配合以前说过的 memcached 组件(内容缓存),对网站打开速度有想当程度的提升。
六、wordpress 优化
在配置中有 2 个配置很重要,需要重点关注
opcache.validate_timestamps=0;
opcache.revalidate_freq=60;
validate_timestamps 用于验证是否要重新生成缓存脚本, 如果设置为 0(性能最佳),需要手动在每次 PHP 代码更改后手动清除 OPcache。 如果此值为 0,那么 revalidate_freq 将失去作用。
revalidate_freq 用于控制 opcache 多久生成一次缓存字节码,默认 60s。所以一般我们在开发环境中将上面两个值配置为
opcache.validate_timestamps=1;
opcache.revalidate_freq=1;
或者干脆直接关闭 opcache。
上面提到了,如果将 validate_timestamps 配置为 0 以后,我们每次部署 PHP 的时候默认是不会自动生成缓存。