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

  • WordPress 服务器 CPU 再次满载:从 Nginx 499、PHP-FPM、Redis 到 W3TC 冷缓存的完整排查

    WordPress 服务器 CPU 再次满载:从 Nginx 499、PHP-FPM、Redis 到 W3TC 冷缓存的完整排查

    一次阿里云 ECS CPU 接近 100% 的告警,最终从 Nginx 499、PHP-FPM max_children、Slowlog、W3 Total Cache Object Cache 和 Redis 一路排查到 Page Cache 冷缓存。实测发现服务器仅有 1 vCPU,而 /page/9/ 在 Cold MISS 时 TTFB 高达 10.6 秒,缓存命中后仅约 0.016 秒。最终没有提高 PHP-FPM 并发、关闭 Redis 或开启缓存预热,而是将 W3TC Page Cache 最长生命周期从 1 小时延长到 12 小时,以降低历史页面反复动态生成带来的 CPU 压力。

  • Cloudflare 526 排查实录:acme.sh 的 RSA / ECC 双证书自动续期,如何把英文站 SSL 覆盖坏了

    Cloudflare 526 排查实录:acme.sh 的 RSA / ECC 双证书自动续期,如何把英文站 SSL 覆盖坏了

    2026 年 7 月 28 日,英文站 en.shuijingwanwq.com 持续出现 Cloudflare 526 Invalid SSL certificate。排查发现,服务器同时保留了 RSA 与 ECC 两套 www.shuijingwanwq.com 的 acme.sh 证书记录:RSA 证书仅包含主域名和根域名,ECC 证书则额外包含英文子域 en.shuijingwanwq.com,但两套证书却共同写入同一组 Nginx 生产证书文件。当天凌晨旧 RSA 证书自动续期后覆盖了 ECC 证书,导致英文子域不再包含在 SAN 中,最终触发 Cloudflare Full (strict) 验证失败。通过恢复 ECC 三域名证书、移除旧 RSA 自动续期记录,并完成源站与 Cloudflare 公网验证后,英文站恢复 200,证书自动续期冲突也得到永久修复。

  • Ubuntu 26.04 双屏突然黑屏排查:ThinkPad T570 从 i915、GNOME 到 HDMI→VGA 转换链路的实践

    Ubuntu 26.04 双屏突然黑屏排查:ThinkPad T570 从 i915、GNOME 到 HDMI→VGA 转换链路的实践

    在 Ubuntu 26.04 + ThinkPad T570 环境下,原本长期稳定运行的 Samsung VGA 副屏突然出现黑屏。排查过程中发现,Ubuntu、GNOME/Mutter、DRM 与 EDID 均能正常识别副屏,但实际视频信号无法稳定维持;降低到 1024×768 后也只能短暂恢复并伴随闪烁。通过 i915 hotplug 日志、显示器自检、分辨率切换、接口重插、Emergency Reset、monitors.xml 与 gdctl 等手段逐步排除了普通软件配置问题,最终将故障范围集中到 HDMI→VGA 转换链路,并决定改用 USB-C→VGA 一体线进行下一阶段交叉验证。

  • 从 403 Forbidden 到正常展示:我为双语 WordPress 博客接入 Adsterra Native Banner 的完整实测

    从 403 Forbidden 到正常展示:我为双语 WordPress 博客接入 Adsterra Native Banner 的完整实测

    在博客广告中偶然接触 Adsterra 后,我实际注册 Publisher 账号,为中文站和英文站分别创建 Native Banner,并通过 WPCode 按域名将广告插入文章末尾。首次上线时,Adsterra 的 invoke.js 持续返回 HTTP 403 Forbidden,但 WordPress、WPCode、W3 Total Cache 和页面 HTML 均已确认正常。第二天关闭本地 VPN 后,请求立即恢复为 HTTP 200,Native Banner 成功展示并产生第一批收入。本文完整记录从平台注册、双域名配置、WordPress 接入、403 排查,到 VPN 网络过滤、初始 CPM 和广告内容质量评估的全过程,并讨论一个广告平台是否值得长期保留,最终应由真实收益、维护成本和用户体验共同决定。

  • 用 EdgeOne 与 Cloudflare 统一解决 WordPress 随机 Query String 缓存穿透:只优化 canonical 文章 URL
    ,

    用 EdgeOne 与 Cloudflare 统一解决 WordPress 随机 Query String 缓存穿透:只优化 canonical 文章 URL

    本文记录一次 WordPress 双 CDN 架构下的 Query String 缓存优化实战。中文站通过 EdgeOne 自定义 Cache Key 与回源请求参数设置,让 canonical 文章 URL 的不同查询参数共用缓存,并在 MISS 回源时删除 Query String;英文站则通过 Cloudflare URL Rewrite Rule 实现相同目标。整个过程结合 HIT/MISS、Age、301、CF-Ray 与 Nginx access log 进行实际验证,最终将规则收敛为仅优化 /YYYY/MM/DD/ID/ 形式的标准文章 URL,在降低随机参数缓存穿透风险的同时保持 CDN 配置简单、清晰、易维护。

  • WordPress CPU 再次满载:动态参数如何穿透 CDN 与 W3TC 页面缓存

    WordPress CPU 再次满载:动态参数如何穿透 CDN 与 W3TC 页面缓存

    在通过 EdgeOne 屏蔽异常 Sogou UA 流量、解决 WordPress 502 后,阿里云 ECS 仍然偶发 CPU 95%~100% 告警。进一步结合 PHP-FPM Slow Log、Nginx 请求日志和 W3 Total Cache 实测发现,大量带 Query String 的前台请求会导致 W3TC Disk: Enhanced 页面缓存无法复用,使请求重新进入 PHP-FPM,完整执行 Gutenberg、Polylang、Post Views Counter、Redis Object Cache 和数据库查询。正常 URL 第二次请求 TTFB 仅约 0.1 秒,而带参数 URL 每次仍需约 7~11 秒。最终决定不逐个封禁参数,也暂不升级服务器或修改 W3TC 内部逻辑,而是在 EdgeOne 与 Cloudflare CDN 层进行 Query String 缓存键和回源 URL 规范化,从根源减少动态参数造成的缓存穿透。

  • 从一次 502 故障到补齐监控体系:为阿里云 ECS 恢复主机监控并配置 CPU、内存、磁盘和带宽报警

    从一次 502 故障到补齐监控体系:为阿里云 ECS 恢复主机监控并配置 CPU、内存、磁盘和带宽报警

    在一次 WordPress 502 故障排查结束后,我继续完善阿里云 ECS 的主机监控与报警体系。排查发现原有云监控 Agent 2.1.56 已停止运行,导致 CPU、内存、磁盘等操作系统级指标长期没有数据。随后通过传统云监控「主机监控」将 Agent 升级至 4.0.0,恢复 CPU、内存、Load、磁盘、网络和公网带宽等监控,并分别为 CPU、内存、磁盘及公网流出带宽设置 Info、Warn、Critical 三级报警。结合恢复后的实际监控数据,现阶段 1 核 2G ECS 与 2 Mbps 公网带宽仍有明显余量,因此暂不升级服务器,而是先通过持续监控积累长期运行基线,让服务器运维从“故障后排查”转向“异常前预警”。

  • 一次 WordPress 502 故障排查:18,455 个 Sogou UA 请求如何打满 1 核 ECS

    一次 WordPress 502 故障排查:18,455 个 Sogou UA 请求如何打满 1 核 ECS

    一次 WordPress 生产站间歇性 502 故障排查记录。阿里云 ECS 一度出现 CPU 100%、Load 超过 9、PHP-FPM Socket 队列达到 510/511,大量请求返回 499 和 502。通过分析 Nginx 日志发现,最近 20000 条请求中有 18455 条携带 Sogou web spider/4.0 User-Agent,并以每分钟约 500~700 次的频率持续遍历网站。随后在 EdgeOne 中通过 *Sogou* User-Agent 规则进行边缘拦截,Sogou UA 请求降至 0,PHP-FPM 队列恢复为 0/511,CPU 空闲率最高恢复到 97%,后台连续请求全部返回 HTTP 200。此次排查说明,服务器出现性能瓶颈时,不应急于升级配置,应先确认异常流量和真正的资源消耗来源。

  • Mermaid 11.9.0 报错 Syntax error in text:最终解决方案是给节点文本加双引号

    Mermaid 11.9.0 报错 Syntax error in text:最终解决方案是给节点文本加双引号

    在 WordPress 历史文章迁移过程中,将原有流程图内容转换为 MerPress Mermaid 区块后,前台出现 Syntax error in text,并显示 Mermaid 11.9.0。最初将错误的 流程图 TD 修改为 flowchart TD 后问题仍未解决,最终发现关键在于节点文本写法。将 A[节点文本] 统一调整为 A[“节点文本”] 后,包含 test()、main()、go test() 以及中英文混合内容的流程图恢复正常渲染。本文记录完整排查过程,并总结适用于 WordPress 历史内容迁移的 Mermaid 节点编写与验收规则。

  • BeWild 3 个月 ChatGPT Plus 自动续订实测:第二个月成功续费,需要手动操作吗?

    BeWild 3 个月 ChatGPT Plus 自动续订实测:第二个月成功续费,需要手动操作吗?

    2026 年 6 月 25 日,我通过 BeWild 购买了 ChatGPT Plus 3 个月订单。一个月后的 7 月 25 日,恰逢第二个月续订节点,ChatGPT 却突然出现请求失败和登录 500,让我一度怀疑 BeWild 自动续订出了问题。经过 BeWild 客服、OpenAI Status、订阅状态和官方账单多方核对,最终确认第二个月已经成功续订至 8 月 25 日,而且续订完成后无需再手动操作“已订阅续费”支付订单。期间 OpenAI 官方确实发生服务故障,从首次发现异常到状态页恢复正常约持续 3 个小时。本文完整记录这次续订、故障排查和验证过程,同时保留一个尚无法确认的细节:故障刚发生时,BeWild 是否已经完成续订。目前第二个月已经实测成功,第三个月则继续等待 8 月 25 日实际验证。

👨‍💻 个人品牌

王世强|PHP / Go 技术顾问

15+ 年 Web 后端开发经验,专注于系统维护、架构优化、性能调优及 Linux 运维。

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

为创业团队、中小企业及独立开发者提供长期技术支持与远程合作服务。

👉 关于我 & 合作

.env (14) 404 (13) add (16) AI 翻译 (13) Apache (13) Array (19) Cache (13) CentOS (23) ChatGPT Plus (12) chrome (19) Cloudflare (26) composer (42) composer.json (22) composer install (13) composer update (14) console (16) Container (25) curl (15) delete (31) Docker (32) Dockerfile (15) ECS (12) EdgeOne (23) environment variable (19) error (24) Failed (13) file (15) filter (20) function (13) Git (27) GitHub (17) Gitlab (15) Go (38) Google AdSense (21) GraphQL (24) GraphQL API (14) Gutenberg (27) http (21) https (21) Installation (12) Interface (19) Jquery (13) json (24) Laravel (37) Laravel 6 (55) Laravel 9 (25) Lighthouse (17) Lighthouse 5 (14) Linux (19) Migrate (13) Module (17) Multilingual (12) MySQL (77) MySQL 5.7 (21) Nginx (56) normalize.css (24) OKX (15) OneinStack (17) PHP (67) php-fpm (16) php.ini (24) PHP 7.1.12 (22) PHP 7.4 (26) phpmyadmin (15) PhpStorm (24) Polylang (57) postman (18) Query (17) queue (16) Rancher (24) Redis (47) response (13) RESTful (27) RESTful API (23) Shell (13) Shopify (19) SlyTranslate (17) SQL (24) String (14) TortoiseGit (14) Twenty Twenty-Five (19) Ubuntu (39) update (20) VPN (17) VS Code (13) W3 Total Cache (33) Windows 10 (46) WireGuard (26) WordPress (111) WordPress 多语言 (13) WPCode (20) Wstunnel (13) Yii (40) Yii 2 (70) Yii 2.0 (51) 命令行 (13) 技术博客 (15) 数据库迁移 (16) 浏览器 (14) 阿里云 (19)

2026 年 8 月
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Most Viewed Posts

  1. 从 LetsVPN 停用至自建 WireGuard VPN 全流程复盘(附避坑指南) (7,571)
  2. 使用中国大陆手机号登录 Telegram,弹出 SMS Fee 且支付选项不支持,购买 Premium 后短信验证码未收到的完整解决流程 (5,370)
  3. ZgoCloud + Wstunnel + WireGuard 提速 4 倍,Clash Verge Rev 自动分流与 443 端口防封实战 (4,859)
  4. WireGuard 国内直连+国外走隧道 配置踩坑与完美解决(实测可用) (3,914)
  5. WireGuard VPN 配置优化:国内网站直连,国外流量走VPN(实测有效) (2,102)
  6. 基于 yiisoft/yii2-app-advanced,在 GitHub 上新建仓库 yii2-app-advanced,新建接口应用(实现 RESTful 风格的 Web Service 服务的 API),新建api目录、配置和环境、测试、Vagrant等的支持 (1,337)
  7. 一直收到 Huobi.info 的账户管理费收取通知,决定提取出剩余的资产 (1,309)
  8. 基于 yiisoft/yii2-app-advanced,在 GitHub 上新建仓库 yii2-app-advanced,新建接口应用(实现 RESTful 风格的 Web Service 服务的 API),在 api 的 tests 目录中准备用户相关操作的一些自动化测试的样例(API 测试),确保应用程序在改变或增加新的功能时不会影响现有的功能 (1,307)
  9. 基于 yiisoft/yii2-app-advanced,在 GitHub 上新建仓库 yii2-app-advanced,新建接口应用(实现 RESTful 风格的 Web Service 服务的 API),实现模型分层:数据层、逻辑层,明确公共目录、应用、模块的继承、引用关系 (1,278)
  10. 基于 yiisoft/yii2-app-advanced,在 GitHub 上新建仓库 yii2-app-advanced,新建接口应用(实现 RESTful 风格的 Web Service 服务的 API),实现 RESTful Web 服务,支持国际化(动态地设置目标语言,默认为简体中文) (1,270)