You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
场景:有个需求,到了指定的时间展示指定的商品。我这边实现方式通过添加商品的开始和结束时间去控制,然后后端用的lumen框架作api按照当前时间筛选是否有可展示的商品并返回(类似:start_time <= current time and end_time >= current time)。然后很奇怪的是,本来要在明天凌晨时候展示的商品提前展示了。看了半天的代码,没看出任何端倪,也把对应的sql语句放到gui中执行,没有任何问题,但是通过lumen接口就是会多返回不该展示的商品。 解决:反复查看后,确定了代码没有任何问题,猜测可能是环境的问题,于是翻了下本地mysql的完整query log,发现了一行sql:set time_zone="+00:00",瞬间就反应过来是时区问题,lumen框架默认的时区是格林尼治标准时间,我们东8区需要+8,改了配置文件后一切ok了。。
linux文件误删
场景:运维同事在删除某个软链时由于多加了个/导致删除了物理文件。
解决:linux误删文件恢复
php少写了一行代码导致服务器cpu爆表
场景:有个开发同事自己写了个curl函数,由于少写了一句
curl_close($ch)
导致php-fpm的cpu占用率一直100%。解决:网络请求需要设置适当的超时时间和及时关闭资源。
重定向get参数截断
场景:有个跨公众号支付的需求(A公众号的用户在无感知的情况下支付给B公众号的商户平台),我这边是B公众号,然后在接收到参数后进行重定向时少加了个
urlencode
,同时请求参数中又包含了#号,导致#之后参数被当作hash而截断了。解决:get参数需要encode下。
lumen框架时间不对
场景:有个需求,到了指定的时间展示指定的商品。我这边实现方式通过添加商品的开始和结束时间去控制,然后后端用的lumen框架作api按照当前时间筛选是否有可展示的商品并返回(类似:
start_time <= current time and end_time >= current time
)。然后很奇怪的是,本来要在明天凌晨时候展示的商品提前展示了。看了半天的代码,没看出任何端倪,也把对应的sql语句放到gui中执行,没有任何问题,但是通过lumen接口就是会多返回不该展示的商品。解决:反复查看后,确定了代码没有任何问题,猜测可能是环境的问题,于是翻了下本地mysql的完整query log,发现了一行sql:
set time_zone="+00:00"
,瞬间就反应过来是时区问题,lumen框架默认的时区是格林尼治标准时间,我们东8区需要+8,改了配置文件后一切ok了。。git配置泄露
场景:web目录挂了git配置,方便钩子同步代码(上传到git自动同步到测试环境),导致可以通过
域名/.git/config
读取配置信息解决:nginx中加入相关禁止访问.git的配置:
sql分页数据丢失
场景: 第一页和第二页的数据都没有某条记录
解决: 因为
order by
的字段有重复数据,导致mysql分页时候排序异常,再加上id之类的唯一键排序即可。master分支合了测试的分支到线上
场景:提交了测试代码到线上
解决:如果测试分支的提交次数很多的话,那么可以找个干净的分支
git push origin master --force
避免:使用master分支创建新的bug修复分支,不能用测试分支。
php基础问题导致数据不正确
场景:
empty('0.00')
是false的解决: 使用>0判断
The text was updated successfully, but these errors were encountered: