SD框架部署时因配置文件导致的BUG

问题表现:公司项目生产环境进行服务器调整后,启动聊天服务时出现问题,报错代码如下,

PHP Fatal error: Uncaught Noodlehaus\Exception\UnsupportedFormatException: Unsupported configuration format in /…隐藏项目路径…/vendor/hassankhan/config/src/Config.php:94 Stack trace: #0 /…隐藏项目路径…/vendor/hassankhan/config/src/Config.php(66): Noodlehaus\Config->getParser(‘0304’) #1 /…隐藏项目路径…/vendor/tmtbe/swooledistributed/src/Server/SwooleServer.php(166): Noodlehaus\Config->__construct(’/www/wwwroot/li…’) #2 /…隐藏项目路径…/vendor/tmtbe/swooledistributed/src/Server/SwooleServer.php(149): Server\SwooleServer->setConfig() #3 /…隐藏项目路径…/vendor/tmtbe/swooledistributed/src/Server/SwooleHttpServer.php(29): Server\SwooleServer->__construct() #4 /…隐藏项目路径…/vendor/tmtbe/swooledistributed/src/Server/SwooleWebSocketServer.php(29): Server\SwooleHttpServer->__construct() #5 /…隐藏项目路径…/vendor/tmtbe/swooledistributed/src/Server/SwooleDistributedServer.php(113): Server\SwooleWebSocketServer->__construct() #6 /ww in /…隐藏项目路径…/vendor/hassankhan/config/src/Config.php on line 94

问题排查:在测试服上测试代码可以正常运行,最初怀疑是否因为正式服上PHP swoole环境调整导致;联系运维PHP版本,扩展,redis数据库版本都没有调整;并且在同一台服务器上运行的其他ws长连接服务全部正常;于是将问题定位在/…隐藏项目路径…/vendor/hassankhan/config/src/Config.php(66): Noodlehaus\Config->getParser(‘0304’)
最初将0304定位为SD框架自定义的错误号,百度,csdn查询SD 0304均无结果;后发现一般框架在定义错误号的时候不会使用0开头;于是联想到0304表示日期,检查配置文件src/config文件夹中果然发现一个文件redis.php.0304;联系运维删除该文件,服务启动正常;
总结:在排查问题时未仔细看错误说明中提到了扩展格式不支持(UnsupportedFormatException),一直将0304当成错误号排查问题;并且一般运维在做运行环境调整时候习惯将老文件以日期的形式做备份,如
cp redis.php redis_0304.php或
cp redis.php redis.php.0304
正好SD框架在启动时会遍历配置文件夹中各配置文件,有非法后缀名的配置文件框架不允许启动。
SD框架配置文件夹中src/config的配置文件取名必须以php结尾,并且使用框架定义的文件,以免出现问题;

sd框架默认的配置文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值