微信開發的本地偵錯只支援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埠。
更多微信開發的本機偵錯環境建立介紹相關文章請關注PHP中文網!