没有不值得去解决的问题,也没有不值得去学习的技术!

标签: W3 Total Cache

  • 排查 English 子站近期文章浏览量长期为 0 的问题,最终确认 Post Views Counter 在 REST API 模式下将 wp_rest nonce 写入长期缓存页面,导致 nonce 失效后计数请求返回 403 rest_cookie_invalid_nonce。通过 MU-plugin 在 WordPress REST 认证前仅针对 PVC view-post 请求刷新失效 nonce,在保留 W3 Total Cache 页面缓存、现有计数模式和 Cloudflare 配置的情况下恢复正常计数。排查过程中还发现 Gutenberg 保存文章时可能使用旧浏览量覆盖 total 的低频边界问题。

  • 在 WordPress 多语言生产环境中,修改自定义 taxonomy series 的系列描述后,W3 Total Cache 再次出现整站 Page Cache 全量失效。通过 Page Cache 快照、Full Flush Tracer 与 Nginx 后台日志,最终确认 series 的 edited_term 进入现有兼容插件的 fallback,并调用 w3tc_flush_posts()。本文记录如何仅将 series 加入允许最终一致性的 taxonomy,完成 Git 提交、生产部署与连续两次真实编辑验证,同时区分这一问题与此前已经存在的 Object Cache / Redis 旧对象问题。

  • W3 Total Cache 的 Page Cache 明明设置了 4 天生命周期,实际缓存却长期活不过一天。经过对缓存文件、*_old ctime、WordPress Hook 和调用栈的持续追踪,最终确认了两条提前触发全量缓存失效的真实路径:Polylang 标签与翻译关系更新触发 edited_term / delete_term,以及 Yoast SEO 的 wpseo_detect_default_seo_data 每日 Cron 通过 WPSEO_Utils::clear_cache() 调用 w3tc_flush_posts()。本文记录两条根因的定位、独立 MU Plugin 修复、真实双语文章发布流程验证,以及修复后 Page Cache 首次存活超过 24 小时的结果,同时保留 Yoast option 实际变化场景尚待进一步验证的部分。

  • 在修复 Yoast Sitemap 500 和 W3 Total Cache 联合预热 Sitemap 之后,继续检查发现 W3TC 的 w3_pgcache_prime 与 w3_pgcache_cleanup 定时任务仍然异常。通过创建随机 Cron Probe 复现问题,最终确认数据库中的 cron option 已更新,但普通 PHP 环境通过 get_option(“cron”) 读取到的仍是 Redis Object Cache 中陈旧的 alloptions。精准删除 options/alloptions 后,Cron 数据重新与数据库一致,Prime、Cleanup 以及 Linux crond 的生产执行链路均恢复正常。

  • 此前已经发现 W3 Total Cache 页面缓存长期很难看到超过 2 天的文件,但当时正在批量处理历史文章,不适合立即判断。等历史处理结束后,借这次 CPU 告警继续排查,最终发现联合预热 Sitemap 长期生成失败,根因是 Yoast SEO 生成 post-sitemap.xml 时触发 PHP 256M 内存耗尽并返回 HTTP 500。将 PHP-FPM memory_limit 提升到 512M 后,中英文 Sitemap 恢复 200,联合预热 Sitemap 也恢复自动更新。

  • 一次 WordPress 生产站点根目录清理实战。从 SSH 终端误粘贴产生的 0 字节命令碎片入手,逐步排查 WordPress 核心空文件、历史临时文件、旧主题与插件、PHP 维护脚本、Nginx/W3 Total Cache 配置、搜索引擎验证文件以及多年遗留的安装包。通过源码校验、旧博客溯源、当前配置核对和隔离机制,最终清理无用文件,同时避免误删仍在使用的标签处理脚本、AdSense、IndexNow 和搜索引擎验证文件,并总结生产环境下“先确认用途、优先隔离、最后删除”的安全清理思路。

  • 在解决 WordPress 首页性能问题后,对当前服务器进行了完整配置审计,重点检查 Nginx、PHP-FPM、OPcache、Redis、W3 Total Cache、阿里云 RDS/MySQL 以及 WordPress 应用层。最终将 PHP-FPM 最大工作进程从 10 提高到 14,调整 OPcache 内存与 Interned Strings 配置,关闭 Gutenberg 实时协作,并为 SlyTranslate 调试日志增加日志轮转;同时保留大量已经运行健康的参数不变,形成一套更适合当前网站长期运行的服务器配置基线。

  • 本文记录在阿里云 ECS 的 OneinStack 环境中,将源码安装的 Redis 7.0.11 升级到 Redis 8.10.0 的完整过程。内容包括升级前环境审计、vm.overcommit_memory 与 Transparent Huge Pages 优化、手动生成 RDB、双重备份与自动回滚、RedisBloom 等附加模块编译失败分析、Redis 核心二进制单独构建、旧版 RDB 兼容检查、临时端口与 PHP Redis 读写测试,以及生产切换后的 WordPress、W3 Total Cache、内存和缓存状态验证。

  • 本文记录在 OneinStack 生产环境中将 PHP 从 8.1.19 升级到 8.5.9 的完整过程。升级期间,PHP 主体、PHP-FPM、Redis 和 LDAP 扩展均安装成功,但 Imagick 3.8.0 因 PHP 8.5 头文件兼容问题编译失败,最终改用 Imagick 3.8.1,并明确指定现有 ImageMagick 7.1.1-10 的安装路径完成编译。随后继续验证 WordPress、WP-CLI、REST API、Polylang 多域名输出,以及 W3 Total Cache Redis Object Cache 的跨请求持久化和中英文域名 Host 隔离,确认中文站、英文站和后台域名均正常运行。

  • 阿里云 ECS 再次频繁触发 CPU 告警后,我结合云监控与 EdgeOne 离线日志,确认自动化抓取和大量回源 MISS 是主要诱因,而 W3TC 未预缓存归档分页只是放大因素。考虑到服务器长期运行在 1 核 2G、内存占用接近 60%,且后续还要部署 Go Tour,最终将实例升级为 2 核 4G。本文记录了告警分析、规格选择、快照备份、升配重启,以及 Nginx、PHP-FPM、Redis、W3TC 和三个域名的完整验证过程。

👨‍💻 个人品牌

王世强|技术实践者 · 独立博客作者

15+ 年 Web 与系统实践经验,持续关注网站基础设施、系统优化、AI 工具与自动化。

持续运营技术博客 10+ 年,累计发布 1000+ 篇原创技术文章。

长期建设个人项目,也欢迎合适的技术交流、咨询与合作。

👉 关于我

.env (14) add (16) AI 翻译 (33) Apache (13) Array (19) A Tour of Go (76) Cache (13) CentOS (23) ChatGPT (29) ChatGPT Plus (17) chrome (19) Cloudflare (38) Codex (26) composer (42) composer.json (22) composer install (13) composer update (14) console (16) Container (25) curl (16) delete (31) Docker (32) Dockerfile (15) EdgeOne (34) environment variable (19) error (24) file (15) filter (20) Git (28) GitHub (23) Gitlab (15) GLM-5.2 (27) Go (65) go-tour-i18n (16) Google AdSense (30) Go 语言 (24) GraphQL (24) GraphQL API (14) Gutenberg (36) http (21) https (22) Interface (19) Jquery (13) json (24) Laravel (37) Laravel 6 (55) Laravel 9 (25) Lighthouse (17) Lighthouse 5 (14) Linux (22) Migrate (13) Module (17) MySQL (78) MySQL 5.7 (22) Nginx (63) normalize.css (28) OKX (15) OneinStack (21) PHP (67) php-fpm (19) php.ini (24) PHP 7.1.12 (22) PHP 7.4 (26) phpmyadmin (15) PhpStorm (24) Polylang (58) postman (18) Query (17) queue (16) Rancher (24) Redis (51) RESTful (27) RESTful API (23) Shopify (19) SlyTranslate (21) SQL (24) String (14) TortoiseGit (14) Twenty Twenty-Five (20) Ubuntu (43) update (20) VPN (17) W3 Total Cache (40) Windows 10 (46) WireGuard (28) WordPress (135) WPCode (23) Wstunnel (15) Yii (40) Yii 2 (70) Yii 2.0 (51) 国际化 (14) 多语言翻译 (38) 开源项目 (15) 技术博客 (15) 故障排查 (19) 数据库迁移 (16) 浏览器 (14) 阿里云 (20) 页面缓存 (14)

2026 年 10 月
一 二 三 四 五 六 日
 1234
567891011
12131415161718
19202122232425
262728293031