最近更换了服务器,发现微信公众号不能用了,发送信息一直报此公众号无法服务。

估计是服务器出问题了,然后看了一下微信服务端的日志,发现果然是报错了


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.


意思大概是这样的:

$HTTP_RAW_POST_DATA已被废弃将被移除,可以使用php://input来代替,并且要在php.ini中设置

always_populate_raw_post_data = -1

出现这个原因主要是之前我服务器版本是5.3的,现在用的是5.6的,根据PHP文档上看:

使用 always_populate_raw_post_data 会产生 E_DEPRECATED 错误。 需使用 php://input 替代$HTTP_RAW_POST_DATA, 因为它可能在后续的 PHP 版本中被移除。 

设置 always_populate_raw_post_data 为 -1 (这样会强制 $HTTP_RAW_POST_DATA 未定义) 来体验新的行为。