分类: PHP
-
文章介绍了基于 Supervisor 和 bash sleep 实现 Docker 部署中类 crontab 任务以降低内存占用的过程。通过编辑配置文件调整脚本执行间隔,并在测试环境检测运行状态与异常处理情况。实验发现将 sleep 时间控制在合理范围并调整 startsecs 参数可有效降低内存,最终在两个产品环境中验证了该方法能显著减少 Docker 容器的内存占用并符合预期。
-
针对 yiisoft/yii2-app-advanced 项目,本文介绍了在 MySQL 日志表累积数百 GB 数据的背景下,基于控制台命令行实现日志消息自动定时删除的方法。操作包括编写 LogController,在凌晨时段按每日批次删除过期数据,通过延缓执行机制避免性能影响。最终配置保留时间参数后,成功将开发环境日志表数据量缩减至 2.36 GB,达到了清理与性能的平衡。
-
本文针对 Yii 2.0 中文件上传接口在多场景下复用的问题,通过引入 scenario 参数区分不同验证规则,并利用模型规则的 on 属性实现了差异配置。文章详细记录了在 UploadAction 和 Upload 文件中的具体修改过程,结合参数配置,验证了不同场景下对文件扩展名和数量的限制,最终通过在接口中增加场景判断,实现了既允许多文件验证又仅上传首个文件的预期逻辑。
-
文章介绍了基于 supervisord 运行 PHP 命令行脚本的方法,通过编辑配置文件和初始化脚本,实现了利用 Rancher 环境变量控制脚本是否运行。测试表明,当环境变量设置为 true 时脚本正常运行,设置为 false 或未设置时不运行,从而支持集群部署时仅在单机中运行。文章最后建议参考特定网址修复临时文件夹的 Bug。
-
文章针对基于 Rancher 部署时出现的文件上传报错进行分析。通过检查日志确定原因为 PHP 缺少存储上传文件的临时文件夹,对比发现系统默认的 /tmp 目录被覆盖导致权限差异。排查后将相关配置文件迁移至新目录,并修改启动脚本将临时路径替换为 /mcloud,最终通过接口测试验证文件上传恢复正常。
-
本文探讨了在 Yii 2.0 框架中基于数据提供者实现类似禅道任务列表的排序功能。针对默认配置下无法实现主字段相同时按 ID 辅助排序的问题,文章通过配置 yii\data\Sort 属性的 asc 与 desc 元素,定义了包含 ID 的复合排序规则。测试结果表明,调整后的 SQL 查询 ORDER BY 子句能够正确执行单字段或组合字段的升序与降序排列,未定义的字段则回退至默认排序。
-
针对 Yii 2.0 框架中字段存储以逗号分隔的关键字需精准匹配而非模糊匹配的问题,文章通过复制核心类文件至公共组件目录并修改 ActiveDataFilter,新增了支持 MySQL FIND_IN_SET() 函数的特定条件构建器 fis。随后在控制器中配置字段过滤,最终生成了符合预期的 SQL 查询语句。
-
针对 Yii 2.0 控制台命令连接 Redis 报错 ERR invalid DB index 的问题,文章分析了错误原因在于 Redis 实例默认数据库数量限制。通过修改 redis 配置文件中的 databases 参数并重启服务,成功扩展了数据库索引范围,解决了 SELECT 命令超出限制引发的异常,确保了应用程序的正常运行。
-
本文介绍了在 Yii 2.0 中因数据库字段类型由整数调整为字符串后,导致接口数据验证失败的问题。为保证版本兼容性,解决方案是保留对数字类型的支持,通过在验证规则前添加过滤器将其转换为字符串。调整后验证通过,生成的 SQL 语句也确保该字段最终以字符串类型存储。
