新功能

使用邮件投递中心掌控您的邮件投递新功能:邮件投递中心,更智能的邮件投递 阅读更多 >

使用 LiteSpeed Cache 和 Redis 为 WebGee 上的 WordPress 提速

启用 LiteSpeed Cache,添加 Redis 对象缓存,再用真正的 cron 任务取代 WP-Cron,让您的 WordPress 网站和后台明显快起来。

AI 总结:

WebGee 的所有共享主机和代理主机套餐都运行在 LiteSpeed 上,这意味着最快的 WordPress 缓存已经内置在 Web 服务器中。再加上用 Redis 缓存数据库查询,并把 WordPress 的计划任务改为真正的 cron 任务,就能消除普通网站上最常见的三大拖慢因素。

本指南按照提升效果从大到小的顺序,逐一介绍每个步骤。

要点速览

  1. 所有 WebGee 套餐均免费提供 LiteSpeed Cache,在 cPanel 的 LiteSpeed Web Cache Manager 中点几下即可启用。
  2. 先使用 Essentials 预设,它不会破坏页面布局;页面优化类预设请先在预发布(staging)副本上测试。
  3. 在无痕窗口中查看 x-litespeed-cache 响应头,确认页面是否由缓存提供。
  4. Redis 是 WebGee 上唯一的对象缓存,将其接入 LiteSpeed Cache 可加快已登录用户和管理后台的访问速度。
  5. 用每五分钟运行一次的 cPanel cron 任务取代 WP-Cron,可避免计划任务拖慢页面加载。

开始之前

  • 能够访问 cPanel 和 WordPress 管理后台
  • 如果打算尝试页面优化功能,请准备一个网站的预发布副本
  • 一个用于测试的浏览器无痕窗口,因为已登录状态下的页面永远不会被缓存
  • 除 LiteSpeed Cache 外,没有启用其他页面缓存插件

页面缓存与对象缓存各司其职

页面缓存会存储完整渲染好的页面,匿名访客访问时完全无需运行 PHP。这项工作由 LiteSpeed Cache(LSCache)负责。

对象缓存会把数据库查询结果保存在内存中,这样 WordPress 就不必在每次加载页面时都向数据库重复同样的查询。它对已登录用户、管理后台以及页面缓存无法覆盖的内容都有帮助。这项工作由 Redis 负责。

大多数网站都能同时从两者中受益。请先设置页面缓存,因为它能为最多的访客带来最大的提升。

启用 LiteSpeed Cache

所有 WebGee 套餐均免费提供 LSCache。最快捷的方式是通过 cPanel,它会自动为您安装并配置插件:

  1. 登录 cPanel,打开 LiteSpeed Web Cache Manager。
  2. 在 LiteSpeed Cache Management 下,选择 WordPress Cache。
  3. 如果列表中没有显示您的安装,请选择 Scan。
  4. 在对应的安装旁选择 Enable。

如果插件已经安装但缓存处于关闭状态,请在 WordPress 中进入 LiteSpeed Cache → Cache,将 Enable Cache 设为 ON。

默认设置无需调整即可适用于大多数网站。清除规则已经设定为在您发布文章时清除首页、分类、标签和作者归档页的缓存,WooCommerce 的默认设置也已排除购物车和结账页面。如果某个页面出现异常,请将其添加到 Excludes 中,而不是直接关闭缓存。详见安装并启用 LiteSpeed Cache。

应用预设

预设可以一次性应用一整套配置。进入 LiteSpeed Cache → Presets,在 Standard Presets 选项卡中,点击所需预设旁的 Apply Preset。系统会先备份您现有的设置,您可以在 History 部分恢复。如果找不到 Presets,请将插件更新到 5.3 或更高版本。

  • Essentials:启用缓存、延长 TTL 并开启浏览器缓存。它不会破坏您的页面布局。
  • Basic:增加图片优化和移动端缓存。图片优化是 QUIC.cloud 的服务,需要一个免费的域名密钥。
  • Advanced:增加大量页面优化功能。
  • Aggressive 和 Extreme:增加 CSS 和 JavaScript 合并、Critical CSS 以及 Unique CSS,这些是可能产生费用的 QUIC.cloud 服务。

请从 Essentials 开始。它能带来绝大部分可获得的提升,而它与激进预设之间的差距,在实际加载时间上远比在页面速度评分上小得多。之后每次只升一级,并在每次调整后进行测试。详见 LiteSpeed Cache 预设。

页面优化最容易导致网站出问题 从 Advanced 开始,压缩和合并 CSS 与 JavaScript 可能会在不知不觉中破坏页面布局或导致某个脚本失效,而且往往只发生在某一个模板上。请在预发布副本上测试这些预设,切勿直接在线上网站上操作,并做好排除冲突文件的准备。

确认页面已被缓存

在 Chrome 无痕窗口中打开网站,按 F12,切换到 Network 选项卡并刷新页面。选择第一条记录(即 HTML 文档),在 Response Headers 中查找 x-litespeed-cache:

  • hit:由缓存提供,说明缓存正常工作。
  • miss:由 PHP 生成并已存入缓存。再刷新一次,应当会显示 hit。
  • 没有该响应头:页面未被缓存。

如需快速检查单个 URL,可以使用 check.lscache.io。如果没有任何页面被缓存,请确认插件已启用,检查网站根目录中是否存在 .litespeed_flag 文件,并移除所有与之冲突的缓存插件。两个页面缓存同时运行会相互冲突,通常结果是两个都无法正常工作。详见检查 LiteSpeed Cache 是否正常工作。

关于爬虫 LSCache 爬虫会预先加载页面,让第一位访客无需等待。由于它对共享服务器的资源消耗过大,该功能在共享主机上已禁用。Premium Hosting 和 Premium Reseller 套餐可以使用该功能。

添加 Redis 对象缓存

Redis 是 WebGee 上的对象缓存方案。Memcached 已停用,其 PHP 扩展也已在全平台禁用,因此仍配置为使用 Memcached 的网站实际上根本没有启用对象缓存。对于插件众多、商品目录庞大或管理后台缓慢的网站,Redis 的效果最为显著;而对于已经由页面缓存提供服务的小型展示类网站,它的作用则不大。

1. 在 cPanel 中启用 Redis

在 cPanel 中打开 Redis,选择 Enable Redis,并记下页面显示的端口和密码。

2. 启用 PHP 扩展

打开 Select PHP Version,选择 Extensions,然后勾选 redis。更改会立即生效。

3. 将 LiteSpeed Cache 指向 Redis

在 WordPress 中,进入 LiteSpeed Cache → Cache → Object,并进行如下设置:

  • Object Cache:On
  • Method:Redis
  • Host:127.0.0.1
  • Port 和 Password:填写第 1 步中记下的值
  • Username:留空

点击 Save。同一页面上的连接状态应显示为 Passed。如果显示 Connection refused,说明 Redis 未在运行;Class 'Redis' not found 表示 PHP 扩展未启用;Authentication failed 表示密码错误。每次禁用后重新启用 Redis,密码都会重新生成,因此请从 cPanel 中重新复制密码。详见启用 Redis 对象缓存和我应该使用哪种对象缓存?。

用真正的 cron 任务取代 WP-Cron

每当有人加载页面时,WP-Cron 都会检查是否有待执行的计划任务。在访问量大的网站上,这项检查可能需要等待 PHP 工作进程,从而让访客一直等待;而在访问量小的网站上,由于没有人加载页面,定时发布的文章和备份任务根本不会运行。

首先,将以下内容添加到 wp-config.php 中 /* That's all, stop editing! */ 这一行的上方:

define( 'DISABLE_WP_CRON', true );

然后在 cPanel 中打开 Cron Jobs,将执行频率设为 Once Per Five Minutes,并输入以下命令。请将 cpaneluser 替换为您的 cPanel 用户名;如果 WordPress 没有安装在 public_html 中,请相应调整路径:

cd /home/cpaneluser/public_html && /usr/local/bin/php -q wp-cron.php > /dev/null 2>&1

五分钟的间隔适合大多数网站,WooCommerce 商店则应保持五分钟,因为订单处理和库存更新都依赖于它。> /dev/null 2>&1 可以防止 cPanel 在每次运行后都把输出结果发邮件给您。您可以使用 WP Crontrol 插件,在 Tools → Cron Events 中确认任务是否正常运行。详见用真正的 cron 任务取代 WP-Cron。

如果后台仍然很慢

wp-admin 永远不会被页面缓存,因此会暴露出被前台缓存掩盖的问题。原因通常出在网站本身,而不是服务器。请按以下顺序逐一排查:

  1. 先进行测量。安装 Query Monitor,查看页面生成时间、查询次数、最慢的查询以及发起这些查询的插件。cPanel 中的 PHP X-Ray 无需安装任何东西,即可从服务器端对请求进行性能分析。
  2. 找出问题插件。大多数后台缓慢的问题都是由某一个表现不佳的插件造成的。如果 Query Monitor 没有指出是哪个插件,请在预发布副本上逐个停用插件进行排查。
  3. 限制 Heartbeat API 在前台和后台的运行,但在文章编辑器中保留它,因为自动保存功能依赖于它。
  4. 提高内存限制,在 wp-config.php 中进行设置。WooCommerce 建议设为 256 MB,WebGee 套餐最高允许 1 GB。
  5. 使用较新的 PHP 版本,可通过 cPanel 的 MultiPHP Manager 进行切换,并在 PHP 扩展中启用 OPcache。

即使某个插件提供了相关选项,也不要缓存 wp-admin。否则您会看到过时的订单数量和库存水平,并据此做出错误的操作。详见改善缓慢的 WordPress 或 WooCommerce 后台。

专为高速 WordPress 打造的主机WebGee 的所有共享主机和代理主机套餐均运行 LiteSpeed,所有套餐均免费提供 LiteSpeed Cache,并可在 cPanel 中使用 Redis。
了解 WordPress 主机

常见问题

为什么我的页面显示 x-litespeed-cache: miss?

miss 表示该页面由 PHP 生成后被存入缓存,首次加载时出现属于正常现象。再刷新一次,应当会显示 hit。请在无痕窗口中测试,因为已登录状态下的页面永远不会被缓存。

我可以用 Memcached 代替 Redis 吗?

不可以。WebGee 已停用 Memcached,PHP memcached 扩展也已在全平台禁用,因此 Redis 是唯一受支持的对象缓存。

我应该使用哪个 LiteSpeed Cache 预设?

先从 Essentials 开始,它会启用缓存、延长 TTL 并开启浏览器缓存,且不会改动您的页面布局。之后每次只升一级,并在每次调整后进行测试,最好在预发布副本上操作。

为什么我的套餐无法使用 LSCache 爬虫?

爬虫功能在共享主机上已禁用,因为逐一访问每个网站的每个页面会占用过多共享服务器资源。Premium Hosting 和 Premium Reseller 套餐可以使用该功能。

  • WordPress
  • LiteSpeed Cache
  • Redis
  • 性能优化
  • WP-Cron
关于作者WebGee Sr. Support Engineer
在 Google 上将 WebGee 设为首选来源
使用 LiteSpeed Cache 和 Redis 为 WebGee 上的 WordPress 提速 | WebGee