今天工作中发现一个本来已经开发测试完上线的接口,结果本地环境出现了报错,线上接口正常,经过不断顺藤摸瓜,最终找到问题如下所示
查找原因后,发现错误原因如下:
官方在PHP5.6就把$HTTP_RAW_POST_DATA废弃了,而且在PHP7中把它也移除了。因为这个参数影响性能,所以这个问题和PHP版本有关系,既然PHP 5.6已经废弃了$HTTP_RAW_POST_DATA。官方建议php://input来代替解决方法:
一劳永逸的改法是,修改php.ini
always_populate_raw_post_data = -1
如图所示:
然后重启本地服务,接口终于正常返回数据了,收拾家伙事,继续下一个任务