近日獲得一份微信營銷系統的代碼,看其功能比較豐富,便開始窺其代碼的實現。為了將整個業務系統跑起來,還真的花了不少時間琢磨,幸好不負我的幾十年功力,終于將運營環境和開發環境搭建成功,并將系統的授權代碼全部剔除(軟件廠商控制使用授權)。
準備條件:
1. 互聯網服務器(必須開啟80,443端口)
2. 申請域名,且綁定到服務器
3. 微信公眾號申請,并通過微信認證(300人民幣)
先上系統部署圖 :

幾個部件需要介紹一下:
1. xampp : 開發php的套件,包含了apache,php,mysql,用起來很簡單,不過我是部署在linux和mac 上,要留意的是文件目錄訪問權限的問題,mac下 所有的服務進程跑在root用戶下;
2. phpstrom: 開發php的ide,出自jetbrains(我個人理解是目前開發工具最牛逼的公司)。 管理數據庫推薦 DataGrip 軟件。
3. xdebug : 這個東西是php與phpstrom的調試接口 ,apche接收到http請求,轉給php解釋器,php解釋器再phpStorm進行調試互動(建立xdebug的9000端口的tcp連接),開發者可以在phpStorm里面隨意下斷點。 注意: 在php.ini中需配置 ide-key:scott , 我是在nginx的轉發頭里面添加了 XDEBUG_SESSION=scott,令所有經過 nginx 服務器的http請求都被轉到phpStorm中,否則無法實現代碼斷點。
4. wxDebuger: 這是微信提供的本地微信頁面調試工具,開發這可以利用winre來調試手機上的頁面,也可以脫離手機,直接調試微信頁面(要調試微信的wxjssdk必須使用wxDebuger)。
5. nginx : 在公網服務器部署nginx作為http服務器,接收各種用戶請求,并將其轉發到xampp。
6. vpn : 這個是關鍵,為了實現本地開發調試的目的,我在公網服務器上部署了openvpn,并在mac開發機上部署了xampp,phpstorm等,并安裝vpn客戶端 Tunnelblick,其自動撥號到公網服務器,獲得地址10.8.0.6,nginx將http請求轉發到了我本地的開發機器上,這樣我可以很方便的進行遠程和本地調試了。
主要的功能描述:
1. 手機、瀏覽器、調試器 發起的http請求到達公網服務器,nginx通過vpn轉發到本地開發機,開發者在phpstorm中斷點調試代碼,并將處理結果按原路返回。
2. 微信服務器的主要作用是獲取 粉絲信息、oauth認證回調、服務器鑒權等功能 , HTTP(302)是 oauth的靈魂 。
3. 這種配置架構很靈活的可以將開發模式切換到部署模式,只需要將xampp部署到公網服務器,并在 nginx的反向代理指到本地xampp服務即可。
附錄 nginx.conf
server {
listen 80;
server_name wx.xxxx.com www.xxxx.com;
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://10.8.0.6:8081;
proxy_set_header Cookie "$http_cookie;XDEBUG_SESSION=scott";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-real-ip $remote_addr;
}
}