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

标签: PHP 8.5

  • 2026 年 8 月 6 日,我曾在 PHP 8.5 环境中排查 WordPress 插件兼容性问题,并向 PublishPress Series 官方 GitHub 仓库提交 Issue #1163,报告 SplObjectStorage::attach() 与 contains() 在 PHP 8.5 下产生 Deprecated 警告。升级至 PublishPress Series Free 3.1.3 后,我重新检查了这个问题:Issue 已由上游关闭,生产环境源码中的旧调用也已经全部替换为 offsetSet() 与 offsetExists(),实际运行测试得到 DEPRECATIONS: 0,确认旧问题已经解决。不过,这次升级又带来了一个新的 Gutenberg 保存异常:新发布的中文文章虽然仍然属于正确的系列,却不再自动获得 Series Part 编号,而对应 English 文章仍然正常。全站扫描最终发现 6 篇受影响中文文章。恢复正确编号后,全站缺失 Series Part 的文章重新归零。为了避免修改插件源码或降级版本,我增加了一个最小 MU Plugin,在 Gutenberg REST 保存完成后调用 PublishPress Series 自己的排序函数自动补齐编号。本文随后作为修复后的第一篇真实中文文章发布,并成功自动成为「WordPress 性能优…

  • 阿里云 ECS 20GB 系统盘使用率升至 81% 并持续触发告警后,对服务器磁盘占用进行逐项排查。确认 PHP 8.5、Nginx 1.30.4、Redis 8.10.0 当前生产运行路径后,清理升级遗留的构建目录、源码、回滚备份和旧 OneinStack 归档,同时处理 824MB PHP-FPM 异常日志、约 2GB systemd journal,以及已经完成使命的 WordPress 历史文章处理目录。最终系统盘使用率从 81% 降至 42%,可用空间增加至约 11GB,并完成 Nginx、PHP-FPM、Redis 运行状态验证。

  • 在多次 OneinStack 生产环境升级和兼容性处理之后,我将已经实际验证并固化到代码中的修改整理为 oneinstack-custom 定制分支,并正式公开到 GitHub。该分支继续保留 OneinStack 原有目录结构和运维方式,重点补充 PHP 8.5.9 构建兼容、GNU libiconv 冲突处理、Imagick 3.8.1、PHP-FPM 状态验证以及 Nginx/OpenSSL 3.5.7 构建等内容。本文同时梳理 OneinStack 原生能力与定制分支的边界,并说明哪些历史运维实践尚未自动化进入仓库。

  • 一次 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 调试日志增加日志轮转;同时保留大量已经运行健康的参数不变,形成一套更适合当前网站长期运行的服务器配置基线。

  • 将 WordPress 生产环境升级到 PHP 8.5 后,PHP-FPM 日志中出现了多项插件兼容性警告。本文记录对 TMS Extensions for Polylang、Nimble Page Builder、SyntaxHighlighter、Yoast SEO 和 PublishPress Series 的逐项排查:停用已经失去实际用途的 Nimble Page Builder,为 SyntaxHighlighter 实施三处最小兼容性补丁,对无法稳定复现的 Yoast SEO 问题暂不修改,并将 PublishPress Series 的问题提交给上游。整个过程以正常生产环境是否受影响为判断依据,而不是盲目追求清除所有 Deprecated 和 Notice 日志。

  • 本文记录在 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 隔离,确认中文站、英文站和后台域名均正常运行。

👨‍💻 个人品牌

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

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

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

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

👉 关于我

.env (14) add (16) AI 翻译 (31) Array (19) A Tour of Go (72) CDN 缓存 (13) CentOS (23) ChatGPT (20) ChatGPT Plus (15) chrome (19) Cloudflare (37) Codex (22) composer (42) composer.json (22) 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 (27) GitHub (23) Gitlab (15) GLM-5.2 (27) Go (64) go-tour-i18n (14) Google AdSense (30) Go 语言 (24) Go语言 (13) 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) 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 (40) update (20) VPN (17) W3 Total Cache (40) Windows 10 (46) WireGuard (28) WordPress (135) WordPress 多语言 (13) WPCode (23) Wstunnel (15) Yii (40) Yii 2 (70) Yii 2.0 (51) ZgoCloud (13) 多语言 (13) 多语言网站 (13) 多语言翻译 (37) 开源项目 (13) 技术博客 (15) 故障排查 (15) 数据库迁移 (16) 浏览器 (14) 阿里云 (20)

2026 年 9 月
 123456
78910111213
14151617181920
21222324252627
282930