WP-Rocket 提供了 Nginx 插件用于绕过 PHP 直接返回缓存的静态 HTML,安装启用后网站可以达到飞一般的速度。
这里以宝塔面板为例介绍如何安装此 Nginx 插件。
1. 关闭 WP 的 Cron 定时任务
由于此插件的目标是直接提供缓存文件,而无需从 WordPress 执行任何 PHP,这可能会导致不调用计划作业。因此,强烈建议关闭 Cron 定时任务。
在 wp-config.php
添加 define('DISABLE_WP_CRON', true);
在宝塔面板-> 计划任务添加访问 URL:https://你的网站/wp-cron.php?doing_wp_cron
频率每 15 分钟一次。
2. 下载插件
首先 SSH 连接上服务器,并以 root
用户登录,进入 Nginx 安装目录。
cd /www/server/nginx
接着从 GitHub 下载插件的源代码。
git clone https://github.com/satellitewp/rocket-nginx.git
3. 初始化并安装插件
进入插件目录生成配置文件。
cd rocket-nginx
cp rocket-nginx.ini.disabled rocket-nginx.ini
php rocket-parser.php
完成后可以断开 SSH 连接,回到宝塔面板-> 网站-> 设置-> 配置文件。在文件末尾}
前面加上下述内容,保存重启 Nginx 即可。
# Rocket-Nginx configuration
include /www/server/nginx/rocket-nginx/default.conf;
4. 测试效果
在未登录 WP 的情况下打开 F12 控制台,可以看到下述内容。
5. 若不为 Yes 的可能原因
- POST 请求:对 Web 服务器的请求是 POST。
- GET 带参数:在请求中找到了一个或多个参数 (例如?page=2)。
- WP 维护模式:找到
.maintenance
。因此,让 WordPress 处理应该显示的内容。 - Cookie:找到特定的 Cookie,并告知不要为缓存的页面服务 (例如用户已登录,使用密码发布)。
- 设置了移动缓存:如果在 WP-Rocket 中设置了为移动端单独缓存,则不会直接提供 HTML 文件,因为 Rocket-Nginx 无法知道请求是由移动还是桌面设备发出的。
- 未缓存文件:未找到该请求的缓存文件。
文章评论
有个问题,这个插件安装之后绕过 PHP 直接返回 PHP,那主题电脑上页面是带侧边栏的,手机端不带,刚刚测试用手机端访问生成的静态页电脑上看侧边栏没有显示,电脑访问生成的则正常,开启手机端单独也可以解决但是那就得经过 PHP 了... 有解吗
@亿梦 无解,因为主题是用代码判断是否是 pc/手机,使用此插件后全部都不经过 php 处理了,自然会无法正常判断。
学你一样 Rocket-Nginx configuration 用绝对路径,相对的总感觉不太靠谱。