关于
Buy Me a Coffee
归档
友链
猫咪
RSS
后台
切换模式
返回顶部
首页
说说
日常
开发
游戏
资源
虚拟货币
首页
说说
日常
开发
游戏
资源
虚拟货币
关于
Buy Me a Coffee
归档
友链
猫咪
RSS
后台
PHP 5.6 弃用 $HTTP_RAW_POST_DATA 所带来的小坑
开发
·
2019-03-27
·
更新于 2020-06-26
LiesAuer
### 起因 在将服务器PHP版本升级至5.6之后,发现微信公众号不回复信息了,也没发现有报错信息。搞了好久,终于在 `register_shutdown_function` 中的 handler 里捕获到了如下错误信息: ```text 8192Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead.Unknown0 ``` 大致是说 `$HTTP_RAW_POST_DATA` 这个变量已经在PHP 5.6 中弃用且会在未来的版本中移除。 ### 解决方案 1. `php.ini` 中将 `always_populate_raw_post_data` 设为 `-1` ,临时解决办法,在PHP7中将被完全移除! 2. 使用`php://input` 代替 `$HTTP_RAW_POST_DATA` 但是你们以为这就是我所说的坑吗?不!!! ### 真正的坑 在我以为有可能是我所引用的 `easywechat` 这个包使用了 `$HTTP_RAW_POST_DATA` 所导致的时候,我才发现问题并没有不简单,我尝试全局搜索整个项目中的 `$HTTP_RAW_POST_DATA` 以验证这个可能性。 ![WX20190327-125745@2x.png](https://storage.liesauer.net/2019/03/3787191191.png) 当我看到这个结果的时候真的惊了,项目中根本就没有使用 `$HTTP_RAW_POST_DATA` ,`PHP` 你报个鬼的错喔! 然后我到浏览器一顿操作,发现 99% 的文章都是教你怎么关闭这个错误的,对于我这种情况压根没提到,终于皇天不负有心人,终于让我找到一篇有提及的文章了。 [PHP 5.6: “Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version.”](https://www.bram.us/2014/10/26/php-5-6-automatically-populating-http_raw_post_data-is-deprecated-and-will-be-removed-in-a-future-version/ "PHP 5.6: “Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version.”") 其中文中提及到了触发该错误的两种情况: 1. 使用了 `$HTTP_RAW_POST_DATA` 2. 接收到的响应的 MIME 不是 `application/x-www-form-urlencoded` 并且开启了 `always_populate_raw_post_data` 由于我们的是公众号程序,所以响应自然是 XML 的 MIME ,所以满足了第二点,这个错误才一直出来,而 `always_populate_raw_post_data` 这个设置的可修改范围是 `PHP_INI_PERDIR`,这意味着该配置只能在 `php.ini` `httpd.conf` `.htaccess` 中修改,在代码中是无法动态修改的,而我的虚机又是 Windows + IIS 的,不支持修改 `php.ini`,也没有 Apache,所以无奈之下只能找个时间将虚机的系统改成 Linux + Apache ,再去关闭 `always_populate_raw_post_data`。
如果您觉得文章或项目对您有帮助,戳我请博主喝一杯咖啡叭!
取消回复
提交评论
李
2021-09-04
回复
终于看到个一样问题的
瞅一瞅叭
空空如也
服务器推荐
RackNerd 2C2G $20.98/年(美国 隐藏款)
狗云 1C0.75G ¥150/年(香港 BGP)
最新评论
Miller: 最好再多加一个查漏补缺的功能(捂脸(/ω\)),因为抓取了3天才...
Miller: 大佬,好像不会爬取jpeg文件,图片和视频数量对不上,是不是图片...
cola: 大佬,可以爬取电报频道的评论内容嘛
Miller: 大佬我终于会了,用cmd命令cd /d G:\cco,感谢大佬指点!
Miller: https://img13.chkaja.com/files/2...
Miller: 不执行命令的话频道页面是空的
Miller: https://img13.chkaja.com/files/2...
关于站长
广东 佛山
liesauer#liesauer.net
LiesAuer
CC BY-NC-SA 4.0
粤ICP备16094588号-1
萌ICP备20245567号
Theme
Jasmine
by
Kent Liao
终于看到个一样问题的