为什么会出现Automatically populating $HTTP_RAW_POST_DATA is deprecated …错误

78次阅读
没有评论

共计 713 个字符,预计需要花费 2 分钟才能阅读完成。

php 报错 PHP:Deprecated:  Automatically 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. in Unknown on line 0

理论上错误原因:$HTTP_RAW_POST_DATA 函数即将被废弃,不可以使用这个函数。

报错信息给了两种解决方案:

1. 在 php.ini 里将 always_populate_raw_post_data=- 1 来隐藏 warning;

2. 将 $HTTP_RAW_POST_DATA 更换为 php://input

不过好多人并不是因为用了 $HTTP_RAW_POST_DATA 这个函数才报错的。而是根本就没有用到这个函数,甚至不知道这个函数,php 还是会给 waring。

那么问题究竟出在哪呢?

问题在于当你把 always_populate_raw_post_data= 0 时,并没有真正意思的 disable(php 设计缺陷)。这个时候,还会自动加载到这个函数,所以会报错。

而且 always_populate_raw_post_data=- 1 时,不仅仅时隐藏 warning,而是真正意义上的 disable always_populate_raw_post_data

修改完 php.ini 后,需要重启 php 服务,修改方可生效。

重启方法:命令行输入 /etc/init.d/php-fpm restart

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-06-15发表,共计713字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)