微信开发的本地调试只支持80号端口,实验了很多办法,总结一下:
办法一:
公司使用的是联通adsl, 在路由器上做完端口映射后发现电信/联通封了80端口,所以这个办法走不通了。
办法二:
搜可以下,可以用ngrok,飞快的下载,设置好了。把ngrok的url填入微信设置时,微信提示这种网址存在安全风险,已经不支持了。
办法三:
这个方式要求你有一台外网linux服务器。微信要求这台机器的域名是已经通过icp备案的,你可以用你开发域名的一个子域名指向这个服务器。比如http://wechatdev.yourdomain.com
(1)首先:把该linux服务器占用80号端口的服务关闭;
(2)打开服务器的远程转发功能,执行以下命令:
sudo nano /etc/ssh/sshd_config
在/etc/ssh/sshd_config文件末尾加入一句:
gatewayports yes
然后重启ssh:sudo service ssh restart
尝试了阿里云和azure 的linux虚拟机,有以下要注意的:
阿里云
打开防火墙,允许访问80端口
azure:
打开防火墙,允许访问80端口
azure比阿里云特别的地方是,root用户默认是没打开的。所有我们需要打开root 用户
用ssh登录,你创建虚拟机的时候应该有一个用户。
执行以下命令:
sudo nano /etc/ssh/sshd_config
修改
permitrootlogin without-password
为:
#permitrootlogin without-password (注释掉)
permitrootlogin yes
然后重启ssh:
sudo service ssh restart
然后切换到root 用户
sudo su
检查root 用户是否锁定(lock表示锁了)
[root@linux ~]# grep root /etc/shadow
root:*lock*:14600::::::
给root 一个密码,这样就启用root了
[root@linux ~]# passwd
最后一步,设置端口转发,在本机上运行(假设你使用mac):
ssh -r 80:localhost:9001 root@wechatdev.yourdomain.com (这句话的意思是,把发到wechatdev.yourdomain.com:80的流量都转发到本地的9001端口。
更多微信开发的本地调试环境搭建介绍。