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

分类: OneinStack

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

  • 本文记录在阿里云 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、内存和缓存状态验证。

  • 本文记录在 Alibaba Cloud Linux 3 与 OneinStack 环境中,将 Nginx 从 1.24.0 升级到 1.30.4,并将其静态编译使用的 OpenSSL 从 1.1.1t 升级到 3.5.7 的完整过程。操作采用旁路编译、生产配置预检、完整备份、短暂停机切换和自动回滚方案,期间解决了 GitHub 下载失败、Perl 模块缺失、Python 3.6 语法不兼容以及旧版 HTTP/2 配置警告等问题。升级后,中文站、英文站、管理子域、WordPress REST API、PHP-FPM 和源站 HTTP/2 均通过验证。

  • 本文记录了一次在 OneinStack 已有 Nginx 虚拟主机中追加 en.shuijingwanwq.com 子域名,并重新签发包含多个域名的 SSL 证书的实操过程。由于主站已经有稳定访问量,且 Nginx 配置中包含多项自定义规则,作者没有采用“删除虚拟主机后重新添加”的方式,而是选择在现有 vhost 中追加 server_name、调整跳转规则、检查 Nginx 配置、添加 DNS 解析,并通过 acme.sh 重新签发和安装证书。文章也说明了这一步是后续将 WordPress 英文站从 /en/ 迁移到 en.shuijingwanwq.com 的服务器与证书准备工作。

  • 本文记录了在 WordPress 网站使用 Polylang 插件批量处理标签时,因 W3 Total Cache 的 Redis 对象缓存引发 OOM 错误的解决过程。通过排查发现 Redis 最大内存限制过小且淘汰策略配置不当,导致写入被拒绝。解决方案是通过修改配置文件将最大内存上限提升至 1GB,并将淘汰策略调整为 allkeys-lru,最终使批量脚本顺利完成,验证了调整内存参数和淘汰策略的有效性。

  • 个人博客出现 504 Gateway Timeout,排查发现服务器因恶意扫描和分布式爬虫导致严重过载。内存被过多的 PHP-FPM 进程耗尽,引发负载飙升。通过降低 PHP-FPM 进程数以适配硬件配置,在 Nginx 层面封禁恶意扫描 IP 及爬虫 IP 段,并重启 ECS 清理积压进程,最终解决了资源耗尽问题,恢复了服务正常响应。

  • 本文记录了将网站域名从旧地址切换到新域名的具体操作流程。主要步骤包括为新域名添加DNS解析,基于OneinStack删除旧虚拟主机并保留目录,随后添加新虚拟主机并沿用原有目录。最后通过编辑Nginx配置并重启服务,访问新域名的robots.txt文件,确认域名切换成功。

  • 本文记录了将Shopify PHP应用从开发环境部署至阿里云ECS生产环境的过程。主要操作包括在Shopify合作伙伴中心创建独立应用,将ECS环境中的PHP由7.4升级至8.1,配置域名SSL解析,并调整PHP配置以解决proc_open限制。部署过程中通过修改数据库引擎参数修复了迁移报错,更新Nginx配置和.env文件解决了权限与参数错误,最终构建前后端代码并重新安装应用,成功实现了页面正常加载。

  • 为了在阿里云 ECS 上满足 Shopify 应用的运行需求,需要将 CentOS 7.7 环境下的 PHP 7.4 升级至 8.1。鉴于手动卸载配置面临 yum 源失效及回滚失败的问题,最终选择将系统迁移至 Alibaba Cloud Linux 3 并使用 OneinStack 脚本进行自动安装。安装过程因 fileinfo 扩展编译在 1GB 内存环境下卡死而受阻,经排查确认是因服务器内存不足导致,最终通过提升 ECS 实例内存配置解决了该问题。

  • 在阿里云 ECS 编译安装 PHP 扩展 fileinfo 时,安装过程一直卡住。经排查,由于该扩展编译过程非常消耗内存,原有的 1 GB 内存配置不足是导致卡死的直接原因。文章记录了通过 ECS 控制台将实例规格从 ecs.n1.tiny 升级至 ecs.n1.small 以提升内存至 2 GB 的操作流程。配置变更并重启实例后,再次尝试安装,问题成功解决,文中还提及了配置 SWAP 分区作为备选方案。

👨‍💻 个人品牌

王世强|PHP / Go 技术顾问

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

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

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

👉 关于我 & 合作

.env (14) 404 (13) add (16) AI 翻译 (21) Apache (13) Array (19) A Tour of Go (31) Cache (13) CentOS (23) chrome (19) Cloudflare (28) composer (42) composer.json (22) composer install (13) composer update (14) console (16) Container (25) curl (15) delete (31) Docker (32) Dockerfile (15) EdgeOne (30) environment variable (19) error (24) Failed (13) file (15) filter (20) function (13) Git (27) GitHub (19) Gitlab (15) GLM-5.2 (23) Go (48) Google AdSense (22) Go 语言 (17) GraphQL (24) GraphQL API (14) Gutenberg (32) http (21) https (22) Interface (19) Jquery (13) json (24) Laravel (37) Laravel 6 (55) Laravel 9 (25) Lighthouse (17) Lighthouse 5 (14) Linux (21) Migrate (13) Module (17) MySQL (78) MySQL 5.7 (21) Nginx (59) normalize.css (28) OKX (15) OneinStack (19) PHP (67) php-fpm (17) 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 (48) response (13) RESTful (27) RESTful API (23) Shell (13) Shopify (19) SlyTranslate (20) SQL (24) String (14) TortoiseGit (14) Twenty Twenty-Five (20) Ubuntu (40) update (20) VPN (17) VS Code (13) W3 Total Cache (35) Windows 10 (46) WireGuard (27) WordPress (123) WPCode (23) Wstunnel (14) Yii (40) Yii 2 (70) Yii 2.0 (51) 命令行 (13) 多语言翻译 (18) 技术博客 (15) 故障排查 (13) 数据库迁移 (16) 浏览器 (14) 阿里云 (19)

2026 年 8 月
 12
3456789
10111213141516
17181920212223
24252627282930
31