mac m1 pro 解决微信公众号本地调试问题
1、 先通过brew安装nginx
brew install nginx #如果报错:==> Pouring ca-certificates-2022-10-11.all.bottle.tar.gz # Error: No such file or directory @ rb_sysopen - /Users/yelin/Library/Caches/Homebrew/downloads/4f73a69fb5caa49a7bd732c718dfaba61866e47ec16da4468e657a57453ce33d--ca-certificates-2022-10-11.all.bottle.tar.gz,可以试试 #清除缓存 更新后再装 brew clean brew update
2、配置nginx转发80端口,把路径/wxpub转发到本地uniapp的路径(网站目录/wxpub),将/wechat/pub的转发到go的后端8085接口地址上
vim /opt/homebrew/etc/nginx/nginx.conf
#添加域名转发
server_name localhost wxpub.mzwjc.com;
# 1. 微信公众号消息/事件推送回调
location ^~ /wechat/pub/ {
proxy_pass http://127.0.0.1:8085/wechat/pub/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# 微信公众号网页开发
location ^~ /wxpub {
proxy_pass http://localhost:8080/wxpub;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 重载
nginx -s reload
# 重启(应该重载就行了)
brew services reload nginx
#如果有报错,创建目录和编辑配置重试:
pid /opt/homebrew/var/run/nginx.pid;3、修改hosts(公众号网页回调跳转)
sudo vim /etc/hosts #添加代理内容 127.0.0.1 wxpub.mzwjc.com
4、微信公众号后台,公众号设置,功能设置,网页授权域名,添加好该域名。(需要上传文件到根目录)
5、将frps放到linux服务器,比如opt下,chmod +x 给frps和sh都增加执行权限,然后启sh
6、uniapp,需要在manifest.json的h5配置的devServer下,增加一个"disableHostCheck" : true (vue可能都要),并且运行端口要和绑定的端口一致
"devServer" : {
"disableHostCheck" : true,
"port" : 8080
}7、本期要启动frpc,配置参考其他帖子,能启动成功,域名解析里,解析道机子上,然后防火墙放行
[common] # 连接服务端的地址 server_addr = 服务器真实ip # 连接服务端的端口 server_port = 7000 # 鉴权方式:token, oidc,需要和服务端一致 authentication_method = token # 鉴权使用的 token 值,需要和服务端一致 token = 服务器约定的密码 [wxpub] type = http local_ip = 127.0.0.1 local_port = 80 # remote_port = 6000 # 域名 custom_domains = wxpub.mzwjc.com
服务器上宝塔nginx,要把wechat开头的转到frp上的180端口上
# 转发公众号推送到frp给本地
location /wechat/ {
proxy_pass http://127.0.0.1:180;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}如果推送域名要走https,针对公众号事件推送:
# 找到包含 listen 443 ssl; 的 server 块
server
{
listen 443 ssl;
server_name wxpub.mzwjc.com;
# 确保在 443 这个 server 块里面,也加了这一段:
location /wechat/ {
proxy_pass http://127.0.0.1:180;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}