分类: PHP
-
针对 Yii2 队列扩展 Redis 驱动中 info 命令显示 reserved 状态队列一直存在的问题,在确认系统日志无异常且还原队列作业代码后,虽能短暂恢复正常,但长时间运行后故障依旧。通过排查发现 attempts 选项生效但 reserved 状态仍积压,最终将 Supervisor 配置中的 numprocs 值调整为 2,启动多个 worker 后,该状态队列持续时间大幅缩短至 10 分钟左右,整体队列处理可在半小时内完成,问题得到有效解决。
-
本文记录了在 Yii 2.0 中实现基于 ActiveDataFilter 的 count 别名字段排序的过程。通过修改入口文件配置 yii\data\Sort,新增了 channel_app_task_count 字段用于统计特定状态的任务数量并支持降序排列。经日志验证 SQL 语句符合预期,最终调整了序列化文件以保持响应字段与表结构一致,虽存在无需排序时执行冗余 count 语句的问题,但目前影响可忽略。
-
本文探讨了在 Yii 2.0 框架中使用 ActiveDataFilter 实现对不存在字段的筛选参数支持。针对选题列表中通过程序计算得出的“是否已延期”字段需求,文章分析了计算规则并推导出待生成的查询 SQL。最终结论指出,若需让表中不存在的字段参与筛选,必须将其转换为表中已存在的字段,从而利用框架自带的底层实现,避免手动转换筛选参数。
-
CakePHP v2.6.4 运行中出现 SQLSTATE[HY000] [2002] Connection timed out 报错,经检查发现数据库主机地址配置为内网IP,导致容器无法访问。将该地址调整为外网IP后,打印数据库连接信息确认容器可以正常访问,问题得以解决。
-
报错提示 Call to undefined function Intervention\Image\Gd\imagecreatefromjpeg(),经查看 phpinfo 发现 GD 库不支持 JPEG 格式。通过升级容器的基础镜像,确认 phpinfo 中新增了 JPEG Support 且值为 enabled,GD 库已支持该格式,问题解决且未再报错,符合预期。
-
针对产品部署时初始化数据的存储需求,文章阐述了在容器启动时将文件复制至 NAS 存储的实现方法。基于 CakePHP v2.6.4 框架,通过新建 Shell 脚本文件,编写了将本地目录下特定日期文件夹中的所有文件同步至挂载 NAS 存储目录的逻辑。操作中利用命令行工具执行同步任务,并配置了容器启动脚本自动运行该命令。最终经日志验证,文件成功复制至指定 NAS 路径,满足了自动化初始化存储的预期。
-
本文介绍了在 Yii 2.0 中优化服务器健康检查实现的过程。通过分析源码发现,数据库检查中的 getIsActive() 方法是冗余的,直接使用 open() 方法即可。针对 Redis 连接,虽然 ping 命令常用于测试连接,但其实质仍需先执行 open()。经过错误密码测试验证后得出结论,为保持检测方式统一,无论是数据库还是 Redis,均应统一采用 open() 方法进行连接检查。
-
本文针对 PhpStorm 提示 Invalid VCS root mapping 的问题进行了分析,发现原因是 vendor 目录下依赖包包含 .git 目录导致版本控制映射冲突。文章记录了通过删除磁盘依赖文件、执行 composer install –prefer-dist 命令重新安装包的过程,成功移除了依赖包内的 .git 目录。经清理 PhpStorm 配置并重建项目验证,该错误提示已消除,且文件能正常提交至 Git。
