为什么会出现Automatically populating $HTTP_RAW_POST_DATA is deprecated ...这个报错
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
php报错如上。
理论上错误原因:$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
always_populate_raw_post_data = -1
修改完php.ini
后,需要重启php
服务,修改方可生效。
重启方法:命令行输入 /etc/init.d/php-fpm restart