lnmp 开启 Opcache 脚本缓存提高 php 性能

lnmp 开启 Opcache 脚本缓存可以提高 php 运行性能,进而提高整体服务器的运行效率。Opcache 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件。今天魏艾斯博客尝试开启这个组件,并希望能够提高 php 性能,因为是第一次尝试,后面经过一段时间服务器运行后再来汇报结果。

为了提高 linux 服务器的运行速度和网站的打开速度,魏艾斯博客前期进行了各种尝试,从各种 wordpress 缓存插件开始折腾,后来发现各种 wordpress 缓存插件在博客流量低(1000IP)的时候,没啥实际意义,反倒会增加服务器负载,于是卸载之。

现在老魏又来折腾 Opcache(脚本缓存)了,这货是 php 自带(php5.5 以后)的加速组件,官方认证且经常更新,所以想要服务器速度飞起来就一定要启用。

一、启用 OPcache 脚本

进入 lnmp 解压后的目录(搞清楚你自己的 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  ;可以缓存多少个脚本,命中率低的可以试着提高这个值 opcache.fast_shutdown=1       ;打开快速关闭,打开这个在 PHP Request Shutdown 时回收内存的速度会提高,推荐 1

以上是老魏的设置。也带上了注释。如果你还有更优化的设置请在下面跟进留言,咱们一起讨论让服务器速度飞起的方法。

三、重启 PHP

最后还要运行重启 php 命令:

service php-fpm restart

在 phpinfo 里面能看到 Zend OPcache 开启了。

这里面最重要的参数是 cache hits,代表缓存命中率;下面的 cache misses 代表为缓存未命中率

四、卸载 Opcache 组件

卸载命令:

./addons.sh uninstall opcache

五、双剑合璧

使用脚本缓存 Opcache 再配合以前说过的 memcached 组件(内容缓存),对网站打开速度有想当程度的提升。

本文在阿里云服务器(点我领取千元代金券当钱花)和腾讯云服务器(点我五折优惠)上测试通过。

memcached 相关文章:

lnmp1.4 环境安装 memcached 和 object-cache.php 过程记录及内存缓存加速效果

MemcacheD 缓存是否启用成功及命中率检查

Memcached 只允许本地访问 11211 端口 解决未授权漏洞

多种方法实时监测 Memcached 命中率

内容缓存和脚本缓存有很多程序可以实现,目前老魏认为同时启用本文提到的这两个就可以了,对于流量低(几千 IP/天)的服务器这样做是比较合适的,你有更好的组合方式请留言告知。

总结:lnmp 中默认已经安装了 Opcache 组件,我们要做的是启用并在 php.ini 中配置一下参数,马上就能体验到性能提升 20%以上的感觉。相关参数设置老魏只是自己总结了一些,不一定是最优化的,有遗漏的地方请大家不吝赐教,我们共同研究进步。

允许转载,保留出处:魏艾斯博客 » lnmp 开启 Opcache 脚本缓存提高 php 性能

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Coding01

初次学习 Docker Volume 的基本使用 (四)

在很早的一篇帖子里 http://dockone.io/question/24 就有人问:「请教下代码放在 Docker 里面还是外面呢」多数人评论类似下面的观...

812
来自专栏有趣的Python

用TravisCI持续集成自动部署Hexo博客的个人实践What is Travis CI?Why we need Travis CI?How to use Travis CI to deploy h

优秀的程序员都是不用持续集成的 前几天我面试了一个码农,连续几个专业问题他都没答上来。 尴尬之余,我问它:「你没有什么理想吗?你现在最渴望的事情是什么?」 ...

3046
来自专栏PaddlePaddle

如何贡献代码

如何贡献代码 我们真诚地感谢您的贡献,欢迎通过 GitHub 的 fork 和 pull request 流程来提交代码。 【代码要求】 1、代码注释请遵守 D...

2898
来自专栏游戏杂谈

强大的网页性能测试工具--Speed Tracer

http://wenku.baidu.com/view/565afd1cc281e53a5802ff08.html

92
来自专栏PhpZendo

Apache 与 Nginx 性能对比:Web 服务器优化技术

多年前 Apache 基金会 Web 服务器 简称「Apache」,由于使用者众多几乎等同于「Web 服务器」。httpd(含义是简单的 http 进程)是它在...

1032
来自专栏张善友的专栏

冗余代码检查工具Simian

微软web2.0开发示例Kobe,重蹈了Oxite的覆辙。Ayende连续发表了五篇高质量的Kobe探讨贴: Kobe – In the nuts & bolt...

2518
来自专栏磨磨谈

fio测试ceph的filestore

fio是一个适应性非常强的软件,基本上能够模拟所有的IO请求,是目前最全面的一款测试软件,之前在看德国电信的一篇分享的时候,里面就提到了,如果需要测试存储性能,...

972
来自专栏ShaoYL

苹果开发者证书创建和设置真机调试

42716
来自专栏yang0range

React Native在Android当中实践(五)——常见问题

这个问题是由于ReactNative兼容64位Android手机导致的。 解决办法: 1.在项目的根目录的 gradle.properties 里面添加一行...

692
来自专栏木制robot技术杂谈

Scrapy爬虫框架教程(四)-- 抓取AJAX异步加载网页

Scrapy爬虫框架教程(一)– Scrapy入门 Scrapy爬虫框架教程(二)– 爬取豆瓣电影TOP250 Scrapy爬虫框架教程(三)– 调试(Debu...

4649

扫码关注云+社区