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 用绝对路径,相对的总感觉不太靠谱。