分类: 项目构建
-
在多次 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 清理积压进程,最终解决了资源耗尽问题,恢复了服务正常响应。
-
在 LNMP 2.1 环境中,为了彻底删除默认的 default 虚拟主机,需要手动处理残留的配置与文件。虽然默认的 Web 目录文件已删除,但 Nginx 主配置文件中仍保留相关 server 段,需编辑 /usr/local/nginx/conf/nginx.conf 移除该配置。同时,由于目录下的 .user.ini 文件被锁定,必须先使用 chattr 命令解除锁定再删除。最后,执行 lnmp nginx reload 重新加载配置,即可完成清理流程。
-
本文针对 PHP 报错提示 exif_imagetype 函数未定义的问题,记录了在 LNMP 2.1 环境中安装并启用 PHP EXIF 扩展的操作流程。首先通过 phpinfo 确认扩展所在目录,随后进入 LNMP 安装目录运行 addons.sh 脚本安装 exif 扩展,完成安装后重启 PHP-FPM 服务使更改生效,最后通过查看 phpinfo 验证扩展已成功启用。
-
基于 LNMP 2.1 部署后接口响应 500,查看 Nginx 错误日志发现报错提示 open_basedir 限制生效,目标文件不在允许路径内。检查项目目录下的 .user.ini 文件确认配置问题,执行 chattr 命令解除文件锁定后尝试修改,但问题依旧。最终决定删除 .user.ini 文件,改为直接在 php.ini 中进行相关设置以解决该报错。
