最新消息:欢迎加入小松的QQ群一起讨论一起学习,本站启用elasticsearch全文检索系统,提供搜索的精确度

解决小松博客微信公众号不能使用的问题

PHP 262浏览 0评论

小松博客微信公众号

很早的时候我就发现小松的博客微信公众号不能使用了,本以为是网站的域名cdn的问题导致的,所以一直也没有想出好的方法,来解决问题,公众号也没有什么人。今天打算静下心来解决这个问题。结果万万没有想到问题所在。

叙述解决问题的过程
小松的博客绑定两个域名,可以用两个域名访问网站,于是在百度里找了wordpress绑定两个域名的方法
在wp-config.php配置文件里,添加代码

if ($_SERVER['HTTP_HOST']=='weixin.phpsong.com'){
    define("WP_SITEURL", "http://weixin.phpsong.com");
    define("WP_HOME", "http://weixin.phpsong.com");
}

php 用define定义的常量,在之后的程序中不能被修改,上面的代码就使用了这条规则,把域名修改过来

然后修改主题下的function.php,我在程序做了控制,域名不是www.phpsong.com的做301跳转

把微信公众平台修改成weixin.phpsong.com的域名,测试结果还是有问题

于是我查了nginx的访问日志,发现有访问过接口的记录,是post访问的,貌似post过来的数据cdn是不能缓存的,难道微信接口有问题?

于是开始查微信接口的程序,开启日志功能,发现问题

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

返回的数据是空的,于是百度了一下
网上说在php.ini里添加了

always_populate_raw_post_data=On

就可以访问了,结果测试不行,怀疑php7不支持这种方式,我确定是php5.6里是可以访问的

然后参考 http://php.net/manual/zh/reserved.variables.httprawpostdata.php
使用 php://input 代替 $HTTP_RAW_POST_DATA
把代码修改成

$postStr = file_get_contents("php://input");

发现可以了,现在微信公众号可以访问了

QQ交流群:136351212

如无特别说明,本站文章皆为原创,若要转载,务必请注明以下原文信息:
转载保留版权:小松博客» 解决小松博客微信公众号不能使用的问题
本文链接地址:https://www.phpsong.com/2362.html

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
木有头像就木有JJ!点这里按步骤申请Gravatar头像吧!