一 前言
微信小程序, 相信大家早已熟知, 它是一种无需下载安装即可使用的轻型应用, 具有跨平台和接近 Native App 性能体验的优势. 从开发模式上说, 它是前后端分离的, 微信小程序负责实现前端应用, 后端服务可以使用任何你说熟知的开发语言, 如 PHP,Node.JS,Java,C#,Python 等, 因而, 微信小程序的开发文档主要是围绕 WXML,WXSS 等前端框架, 组件或样式布局进行讲解, 几乎看不到后端技术的身影. 本文主要介绍如何在腾讯云服务器上部署 Python+Django 实现的微信小程序后台服务, 对整个部署过程和涉及的事件有所了解即可, 无需关注具体细节.
二 部署前准备
部署前的准备工作比较耗时, 可能这也是很多微信小程序个人开发者会感到头疼的地方...
1. 购买云主机
开发的微信小程序应用带后台服务的, 要考虑购买云主机, 可选服务提供商挺多的, 如腾讯云, 阿里云, 百度云等, 根据个人需要选购即可, 腾讯云主机相对便宜(西南地区 - 成都, 主机相对其他区域便宜一点);
2. 域名申请 \ 解析 \ 备案
A. 域名申请
购买域名, 最好是云主机在哪里买, 域名就在哪里买吧, 也省了域名转入的事儿, 比如主机, 域名都在腾讯云购买;
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>
四 总结
如果开发的微信小程序需要后台服务支持, 域名备案是一个耗时等待的过程, 因而, 可以提前发起备案申请; 后台服务部署涉及的细节较多, 都可以单独领出来写配置文档, 但配置相对比较容易, 另外, 考虑后台服务器选择种类众多, 全部写出来, 篇幅居多, 参考性可能也不大, 所以, 只列出大致流程, 对整个部署过程和涉及的事件有所了解即可, 实际应用中还要具体问题具体分析.
来源: http://blog.51cto.com/2681882/2390137