一 前言前端
微信小程序,相信你們早已熟知,它是一種無需下載安裝便可使用的輕型應用,具備跨平臺和接近Native App性能體驗的優點。從開發模式上說,它是先後端分離的,微信小程序負責實現前端應用,後端服務可使用任何你說熟知的開發語言,如PHP、NodeJs、Java、C#、Python等,於是,微信小程序的開發文檔主要是圍繞WXML、WXSS等前端框架、組件或樣式佈局進行講解,幾乎看不到後端技術的身影。本文主要介紹如何在騰訊雲服務器上部署Python+Django實現的微信小程序後臺服務,對整個部署過程和涉及的事件有所瞭解便可,無需關注具體細節。python
二 部署前準備web
部署前的準備工做比較耗時,可能這也是不少微信小程序我的開發者會感到頭疼的地方…express
1. 購買雲主機apache
開發的微信小程序應用帶後臺服務的,要考慮購買雲主機,可選服務提供商挺多的,如騰訊雲、阿里雲、百度雲等,根據我的須要選購便可,騰訊雲主機相對便宜(西南地區-成都,主機相對其餘區域便宜一點);json
2. 域名申請\解析\備案小程序
A. 域名申請windows
購買域名,最好是雲主機在哪裏買,域名就在哪裏買吧,也省了域名轉入的事兒,好比主機、域名都在騰訊雲購買;後端
B. 域名解析微信小程序
購買的雲主機會有一個公網IP,經過將域名與ip地址綁定,能夠實現經過域名訪問服務。如騰訊雲主機域名解析配置方式爲:
登陸騰訊雲控制檯---> 進入域名頁面--->在域名上點擊[解析]--> 添加解析記錄
C. 域名備案
這個最蛋疼!騰訊雲提交備案信息,如我的信息、住址信息、×××信息、居住證信息、照片視頻等材料;
這個最耗時!騰訊雲審覈1個工做日,管局審覈理論上20個工做日左右(可能會快幾天);
這個是必須的!微信小程序後臺域名必須備案,無法繞過,看開發文檔的明確說明:
3. 申請SSL證書\配置啓用https訪問
A. 騰訊雲提供了ssl證書的免費申請,具體能夠查看騰訊雲相關文檔,大體流程爲:
登陸騰訊雲-->ssl證書管理-->申請證書(免費)-->等待審覈(一個工做日內完成審覈,審覈結果將以短信、郵件及站內信的方式通知您。通常半個小時便可審覈經過)
B. 配置啓用https
證書審批結果會以短信通知,審批經過後,能夠在控制檯下載證書文件,且在apache中安裝配置(記得配置後重啓apache服務)
4. 配置小程序服務器域名
域名備案經過後,登陸微信公衆平臺小程序,配置服務器域名,大體流程是:開發--開發設置-服務器域名-開始配置,填寫備案的域名;
三 部署Apache+mod_wsgi+Django
通過前期的準備,已經有能夠運行後臺服務的主機和備案的域名,且支持https協議,接下來就須要將開發好的後臺服務部署到雲主機,以便爲微信小程序提供後臺API訪問。
1. Apache安裝配置
個人騰訊雲服務器使用的是windows 2k8 R2系統,在Apache官網下載對應的版本,解壓,配置httpd.conf,使用相似httpd -k install -n "Apache2.4"的命令能夠將apache註冊成windows服務;
2. 安裝mod_wsgi
下載與Python版本對應的mod_wsgi,使用pip install安裝,並記錄安裝成功後出現的配置信息,以備後續httpd.conf配置;
3. 配置Django項目
部署Django項目,配置httpd.conf,重啓apache服務,若是配置無異常,經過配置的域名應該能夠正確得到後臺響應數據,後臺接口數據通常以json格式返回。
httpd.conf配置舉例以下,配置時注意依據實際路徑修改:
#安裝wsgi模塊後,mod_wsgi-express module-config命令輸出的三行信息,直接複製過來 LoadFile C:/python36/python36.dll LoadModule wsgi_module c:/users/administrator/.virtualenvs/example-qwbwsvwe/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win32.pyd WSGIPythonHome c:/users/administrator/.virtualenvs/example-qwbwsvwe #設置工程中的wsgi路徑 WSGIScriptAlias / C:\Dev\example\webApp\webApp\wsgi.py #設置工程路徑 WSGIPythonPath C:\Dev\example\webApp #設置wsgi路徑 <Directory C:\Dev\example\webApp\webApp> <Files wsgi.py> Require all granted </Files> </Directory> #設置靜態文件路徑 Alias /static C:\Dev\example\webApp\static <Directory C:\Dev\example\webApp\static> AllowOverride None Options None Require all granted </Directory>
四 總結
若是開發的微信小程序須要後臺服務支持,域名備案是一個耗時等待的過程,於是,能夠提早發起備案申請;後臺服務部署涉及的細節較多,均可以單獨領出來寫配置文檔,但配置相對比較容易,另外,考慮後臺服務器選擇種類衆多,所有寫出來,篇幅居多,參考性可能也不大,因此,只列出大體流程,對整個部署過程和涉及的事件有所瞭解便可,實際應用中還要具體問題具體分析。