织梦模块插件下载-WordPress速度优化最后一招,用Opcache实现前后端全站加速

WordPress的访问速度绝对是WordPress新手站长最头疼的问题之一。 如果你用过其他建站系统,比如ThinkPHP、Dreamweaver等国产CMS,你会发现,即使你安装了最纯粹的WP,也没有任何插件,没有发布任何文章内容,访问速度也很慢。不如国内的这些系统。

加速wordpress

这个问题困扰了我们团队很长时间。 随着我们对WordPress了解的深入,我们会发现一些蛛丝马迹,比如它的钩子加载机制、插件挂载机制、数据库表结构等等,这些都设计得太灵活了。 它非常适合低代码网站建设者,但也损失了很多性能。

关于优化WordPress访问速度的教程太多了,但大多数都集中在删除谷歌字体、安装缓存插件、优化数据库、压缩图片和静态脚本文件等常用方法。

最有效的其实就是安装缓存插件。 设置好后,前台的访问速度将会大大提高。 但这种方案也有很大的限制——它只适合缓存静态页面,这非常适合企业展示网站; 而对于一些需要动态渲染的网站,比如无忧快建在线课堂等带有会员制的网站,页面需要根据用户是否登录来显示不同的内容,所以不能简单地通过缓存插件来加速。插入; 例如,WordPress后端也使用动态渲染。 ,实际上是不可能通过缓存插件来实现加速的。

关于动态渲染页面的加速,之前我们其实已经总结过一些有用的信息:10年经验终极盘点,彻底解决WordPress后端访问慢的问题;

上面的教程可以解决一些问题。 但我们在开发无忧在线课堂系统时织梦模块插件下载,引入了可视化自助建站理念,并增加了课程收费、付费会员等功能。 一切都是根据 WP 标准开发的。 虽然应该已经做了优化,但是由于功能较多,访问速度可能一直不尽如人意。

于是我们探索了一种新的优化方法,使用PHP的Opcache扩展,操作非常简单,而且提速效果明显。

OP缓存

看一下没有Opcache优化的访问速度测试:

访问速度测试

我使用的是Edge浏览器的网速测试工具。

这是经过一系列常规优化后的速度。 服务器配置为阿里云2核CPU/4G内存/5M带宽C5实例。 打开整个网站需要2.52秒。 你可以感觉到明显的滞后。 如果你追求极致的访问速度,这肯定是不够的;

从截图数据可以看到织梦模块插件下载,发送请求花了0.1毫秒,速度非常快。 下载内容花了39.02毫秒,速度也很快。 最耗时的部分是“等待(TTFB)”,耗时2.47秒。 部分发生在服务器收到请求之后、内容开始下载之前,即服务器处理用户的请求并生成返回内容所花费的时间。 它应该包括代码逻辑的执行、数据库查询、文件读取等步骤。 其实我们已经优化了数据库部分,而文件读取依赖于磁盘IO性能,当网站访问量较小时,应该不会成为瓶颈,所以唯一的可能就是代码执行阶段出现了问题。

现在我们来看看今天的主角Opcache。

Opcache是​​PHP官方出品的性能优化扩展。 从PHP5.5开始就绑定了该扩展,但默认不启用。

Opcache 的工作原理

关于其工作原理,这里简单介绍一下。 有兴趣的朋友可以看一下。 不感兴趣的可以直接跳过,看看如何配置和使用。

要了解Opcache的原理,我们首先要从PHP语言如何处理http请求开始。 总共有四个步骤:

收到请求后,启动Zend引擎并加载注册的扩展模块; 初始化后,读取脚本文件,Zend引擎对脚本文件进行词法分析和语法分析,生成语法树; Zend引擎编译语法树并生成操作码; Zend引擎执行操作码,返回执行结果;

Zend 可以被认为是运行 PHP 语言的机器。 收到用户请求后,首先要启动机器,然后对用PHP语言编写的代码进行处理,生成计算机可以理解的代码,最后执行代码得到结果。

每次用户发送请求时都必须完成上述过程(php-fpm表单不会重复步骤1)。 服务器每天要处理的请求数量非常巨大,因此上述过程消耗了大量的性能。 事实上,对于已经上线的网站来说,源代码很少改动,所以步骤1、2、3不需要每次都执行。 Opcache用于缓存步骤1/2/3。

如何使用 Opcache

以宝塔面板为例:

进入软件商店,找到您使用的PHP版本,我们使用PHP7.4,点击设置,如下图:

PHP 设置

找到Opcache并点击安装

PHP 扩展安装

安装成功后,Opcache会自动生效,但是宝塔面板的默认设置可能有问题,所以需要检查配置:

进入PHP的配置修改,查看以下部分代码:

操作缓存设置

重点关注这些行:

opcache.内存消耗

指的是Opcache的可用内存大小,单位是MB,根据你的服务器内存来决定。 一般设置为内存的1/4。 我们内存是4G,所以设置为512;

opcache.max_accelerated_files

指的是可以缓存的PHP文件的最大数量。 这取决于您的代码量。 一般10万-20万就够了;

opcache.validate_timestamps

指缓存过期时间,必须设置为0,表示禁用,否则会出现很多重复生成缓存的问题;

下面贴出完整的配置:

opcache.启用= 1

opcache.内存消耗=512

opcache.interned_strings_buffer=32

opcache.max_accelerated_files=80000

opcache.revalidate_freq=3

opcache.fast_shutdown=1

opcache.enable_cli=1

opcache.validate_timestamps=0

看一下加速效果:

需要注意的是,第一次访问速度不会更快,因为需要生成缓存,所以测试第二次访问速度。

我们以无忧在线课堂系统为例:

优化后速度测试

可以看到TTFB时间下降到了668毫秒,整体访问速度也在1秒以下,基本达到了秒开的效果。

使用 Opcache 的注意事项

Opcache看起来很漂亮,但它也有一些缺点:

Opcache生成的缓存驻留在内存中。 如果网站代码很大,就会占用大量内存。 因此,如果服务器内存太低,不建议使用。 每次更新代码时,都需要手动重新生成缓存,否则新代码不会生效。 宝塔内重启PHP即可生效; 在线正式环境中必须关闭opcache.validate_timestamps选项,否则Opcache会不断检查代码是否更新并生成新的缓存,这也会消耗额外的服务器性能并导致其他难以理解的问题;

其实这个方法适用于任何用PHP语言开发的网站。 如果您的网站经过各种方式优化后,速度仍然不理想,不妨尝试一下这个解决方案。