相信建站的朋友都十分关心网站速度问题了,理论上来讲使用 WordPress 主题搭配一个不是太差的服务器,那么就已经很快了,如果你想让你的网站变得更快,那么看了这篇文章,我相信完全够了。
主题优化介绍
为了让大家了解什么是极速优化,首先我必须的得再次介绍一下主题是如何做的。
简单的说一个网站打开的流程:WordPress 使用 PHP 为后端服务,由 PHP 进行 html 内容渲染,然后传入用户浏览器。
那么这里我们从速度优化上来讲主要需要重视的两个过程:后台渲染速度
和前台网页加载速度
后台渲染速度
主要由 PHP 负责,由 php 查询数据库,生成 html 内容再返回给浏览器前台网页加载速度
主要取决于用户与服务器之间的网速以及请求的内容大小
那么这里我们先说前台加载速度,这一部分最简单易懂,简单的说就是网速快不快,内容大不大。
优化措施
首先分享一下我的建议以及可以优化速度的有效措施
- 前台优化:使用 CDN 加速
- 前台优化:图片使用 OSS/COS 等第三方储存
- 后台优化:不建议使用全静态缓存,会导致很多交互功能不能用
- 后台优化:推荐使用 Redis 或 Memcached 缓存功能,不会有任何负面影响
- 后台优化:推荐使用 opcache 进行 PHP 加速优化
Redis 缓存教程
php 在执行函数最消耗时间的就是查询 SQL 数据库了,一般来讲一个页面的数据库查询大概在 120 到 260 次左右,使用 Redis 或者 Memcached 缓存,原理就是将 php 查询过的数据库缓存下来,下一次相同内容就不再查询数据库了,直接从缓存获取,极大的提高 php 执行效率。
WordPress 官方采用 Object Cache 对象缓存,同时主题的也遵循此机制,配合 Redis 或者 Memcached 缓存,能将数据库查询降低 80%,有效的提高了渲染速度!
Redis 和 Memcached 原理是一样的,我们只需要二选一安装使用即可,优化加速的效果也差不多。我就以宝塔环境安装 Redis 为例,进行详细的图文教程。
教程一共分为三步:
- 安装 PHP 的 Redis 扩展
- 宝塔安装 Redis 程序
- WordPress 安装 Redis 缓存插件并开启
安装 PHP:Redis 扩展
进入宝塔,选择到我们目前在使用的 PHP 程序(推荐使用 PHP7.4),进入安装扩展找到 Redis 并安装:
等待安装完成之后,记得重启一下 php 服务:
安装 Redis 程序
进入宝塔的软件商店,搜索 Redis ,然后安装即可,安装完成之后无需做任何设置。
安装 WP 插件
最后一步就是在 WordPress 安装 Redis 缓存插件了,支持 Redis 缓存 的插件有很多,我这里以 Redis Object Cache
这款插件为例进行安装
- 直接在插件中心搜索
Redis Object Cache
,安装即可 - 启用插件
- 开启缓存
这个功能十分简单,不要觉得是英文插件有会影响使用,开启之后看到如下界面就说明成功了。如果没有开启成功,请按照上面的步骤检测 php 扩展和 Redis 程序是否安装成功
重要提醒
如果您的服务器有多个网站,并且又要使用 Redis,那么,一定要为网站设置不同的数据库前缀!不然数据会乱窜,或者在wp-config.php添加
define( 'WP_CACHE_KEY_SALT', 'www.xcwldh.com' );
define( 'WP_CACHE', true );
Opcache 加速教程
根据 PHP 的执行逻辑,每一个 php 函数在执行的时候 php 会先把此函数进行编译解析。Opcache 是 PHP 官方公司开发的一款 PHP 优化加速扩展,它的原理把 PHP 函数编译解析后的内容进行缓存,从而提高 PHP 的执行速度!根据测试,能有效的提高 2 到 5 倍左右的执行效率。
安装 Opcache 就十分简单了,直接安装 Opcache 扩展,再重启 PHP 服务即可!
使用宝塔安装 Opcache 之后会自动配置好扩展参数,如需适当修改,进入配置文件,搜索;opcache
,即可看到配置参数:
对应的配置解释:
opcache.enable=1 (default "1")
;OPcache 打开/关闭开关
opcache.memory_consumption=128 (default "64")
;OPcache 共享内存存储大小。用于存储预编译的 opcode(以 MB 为单位)。
opcache.interned_strings_buffer=8 (default "4")
;OPcache 字符串驻留大小,(以 MB 为单位)
opcache.max_accelerated_files=80000 (default "2000")
;OPcache 控制内存中最多可以缓存多少个 PHP 文件,建议设置大一点,大于你的项目中的所有 PHP 文件的总和
opcache.revalidate_freq=3 (default "2")
;OPcache 设置缓存的过期时间(单位是秒);几秒内内容不会刷新,如果需要实时更新可以设置为 0
opcache.fast_shutdown=1(default “0”)
;OPcache 更快速清理内存的机制,实际效果视环境而异
查看及分析
缓存安装好了之后,怎么查看效果呢?之前就有网友叫我加一个显示 sql 查询数量以及 php 渲染时间的功能,其实这个一直都是有的,使用火狐浏览器或者 Chrome 浏览器按 F12 进入浏览器控制台 Console 就能看到了。你可以测试一下,未开缓存以及开启缓存的实际效果。
最后温馨提醒:
- 主题更新或者更新重要内容请记得刷新缓存!
- 使用缓存之后,部分不太重要的数据就不会实时更新,主题会自动判断!这种不重要的内容无需关注
- 适当优化,如果未优化就能低于 500 毫秒那就不建议再做优化了