个人做微信小程序必须考虑到工作量和资金的问题,这篇文章总结出一套针对个人切实可行的方案。本文章重点在抛砖引玉,而不是对各种细节的详细描述。读者可以根据文中提到的各种关键词,查阅相关资料

方案包括

  1. 在Ubuntu上面使用flask建立web服务器
  2. 使用花生壳内网穿透
  3. 使用花生壳提供的带备案信息的域名
  4. 使用腾讯云提供的免费https证书
  5. 微信小程序网络连接的注意事项

在Ubuntu上面使用flask建立web服务器

后台可以用java,php等。但考虑到个人开发,这里选择python。因为python可以快速搭建带调试功能的开发环境,也是大多个人开发者最熟悉的语言。

开发环境使用pycharm的community版本,操作系统Ubuntu 16.06。

使用flask模块提供的http server功能,不用单独安装环境,和普通的python程序无区别。查看下面代码了解具体使用方法:

https://github.com/rabienrose/listening_training/blob/master/server/app.py

使用花生壳内网穿透

在初期研发阶段,使用远程的服务器不仅需要一定的费用,而且各种配置也添加的工作量。所以这里采用本地运行服务器程序,毕竟在本地操作要方便很多。

本地计算机一般只有内网ip,这里使用花生壳提供的内网穿透功能。具体原理是在本地运行一个后台程序,小程序和花生壳的服务器相互通行。也就是把后台程序运行的这台机器和一个花生壳提供的域名绑定在一起。外部访问这个域名的时候,就知道这是要访问后台程序所在的这台机器。

详情见:https://hsk.oray.com/

使用花生壳提供的带备案信息的域名

微信小程序和服务端的通行只能通过微信提供的wx.request这个函数。而这个函数内部会对访问的域名有所要求:

  1. 域名必须是有备案的
  2. 域名必须是https

域名备案一般需要几个星期的时间,而且步骤非常之多。虽然建议读者有空还是去做一个域名的备案,不过这里提出一个替代方案。

花生壳在做内网窜穿透的时候,同时需要申请一个域名。这个域名是花生壳备好案了的,比如我的域名是:

rabienrose.iicp.net:21070

而域名iicp.net是有备案信息的,个人的不同体现在二级域名rabienrose上。

另外如果自己有已经备好案的其他域名的话。可以通过CNAME把自己的域名转接到花生壳的这个域名上。这样就可以使用自己的域名做内网穿透了。不清楚的请自行了解:域名解析CNAME

如果要用自己的域名备案的话,推荐使用域名提供商提供的备案服务。我的域名是阿里云买的,所以就用的阿里云的备案服务。

使用腾讯云提供的免费https证书

https的CA认证才是最花钱的,一般一年要几千到几万元。笔者发现腾讯云提供了一个免费的认证服务。不了解https的请自行搜索:ssl认证。

https://cloud.tencent.com/document/product/400/8421

在验证域名所有权的时候,因为没有对花生壳域名的域名解析设置权限,所以只能采用文件验证这种方式:

https://cloud.tencent.com/document/product/400/4142

不过笔者没有亲自尝试过这种方式,也不确定一定能行。笔者因为自己又备好案的域名,所以用的手动DNS验证。

免费的https证书申请很快,基本一个小时内能通过申请。

申请完后,可以在管理界面中下载证书的文件。参照上面的代码,把证书文件设置到代码中即可。

微信小程序网络连接的注意事项

  1. 小程序对服务器域名的验证还是很严的。域名需要现在小程序后台中配置后才能使用,而且端口号和二级域名都要一致才行。域名没有备案时,在配置的时候就会提示错误。但是如果https CA证书不对时,只有在使用的时候才报错。
  2. 小程序的开发在微信提供的小程序开发工具中进行,工具中可以设置在开发版本不进行域名合法性检查。

微信小程序个人服务器搭建相关推荐

  1. 微信小程序本地服务器搭建

    第1步:安装node.js. node.js下载地址:https://download.csdn.net/download/weixin_43469391/11869090 第2步:搭建服务端. 说明 ...

  2. 微信小程序商城服务器搭建,基于微信小程序商城毕业设计(小程序客户端+服务端Node.js源码)毕业论文+运行说明...

    微信小程序商城毕业设计(微信小程序客户端毕业设计) 摘  要 购物商城系统是保证以购物商城为基础的网上交易实现的体系.市场交易是由参与交易双方在平等.自由.互利的基础上进行的基于价值的交换.网上交易同 ...

  3. 微信小程序配置服务器域名和业务域名

    微信小程序配置服务器域名和业务域名 背景 如何配置服务器域名 如何配置业务域名 背景 微信小程序本身的限制,并不能直接请求接口地址和在web-view中随意跳转H5页面,其需要配置服务器域名,才能在微 ...

  4. 微信小程序——平台的搭建

    #一个简单的微信小程序平台的搭建 目录设置 主要模块 实现了课程.精品.商城.我的三个模块界面的切换.实现课程详情页,价格选择,购物车加购等界面功能. 实现界面 二.精品 三.商场 三.我们 四.购物 ...

  5. 亲手创建一台Ubuntu+PHP5+MySQL5+Nginx+openSSL+sshFtp(sftp)的微信小程序云服务器

    亲手创建一台Ubuntu+PHP5+MySQL5+Nginx+openSSL+sshFtp的微信小程序云服务器 小程序要求Request必须SSL连接,一般虚拟主机不支持SSL,自己有云服务器最佳. ...

  6. 搭建微信小程序HTTPS服务器

    微信小程序是目前热门,学习及应用的人非常多,但很多人不知道小程序接口域名HTTPS怎么做,下面我们将详细介绍搭建微信小程序每一个步骤,希望可以快速的帮助你如何搭建微信小程序与HTTPS服务器. 一.申 ...

  7. 关于微信小程序Tomcat服务器后端程序搭建

    关于Tomcat服务器小程序Java后端搭建 微信小程序采用的向服务器发送请求的api可以先看一下 wx.request(OBJECT) 发起网络请求. 这里重点关注data和url以及datatyp ...

  8. 微信小程序绑定云服务器文档,微信小程序云开发搭建一个管理小程序.pdf

    微微信信小小程程序序云云开开发发 搭搭建建一一个个管管理理小小程程序序 概概述述 : 开发者可以使用云开发开发微信小程序.小游戏,无需搭建服务器,即可使用云 能力. 云开发为开发者提供完整的云 支持, ...

  9. node.js 微信小程序 部署服务器_微信小程序开发入门(一),Nodejs搭建本地服务器...

    1.  如何模拟真实环境中,读取服务端数据,首先需要使用Nodejs搭建一个本地服务器的环境. 在搭建web服务器之前,需要先安装node.js(安装版本最好为6.9.x) 安装后node.js,接下 ...

  10. 微信小程序如何快速搭建服务器?

    前言 有很多个人移动开发者都在问如何快速搭建服务端,供前端调用API使用?本文Joe大叔就介绍一个快速.简单.便携的方案给朋友们,我们接着往下看. 一.如何快速搭建服务端? ​这里我们选择一个叫做Bm ...

最新文章

  1. Unity Fine Prued Tiled Light (FPTL)
  2. 【渝粤教育】21秋期末考试马克思主义基本原理概论(A)10882k1 (2)
  3. python16_day37【爬虫2】
  4. 利用python开发一个竞争情报系统_一个基于python的即时通信程序
  5. python 根据关键字 切割pdf_用python拆分pdf
  6. Ubuntu远程连接,远程桌面
  7. 标准盒模型和怪异盒模型小结
  8. 细胞工程1、2-实验室组成与无菌操作
  9. Windows 7/8 fails to install in VirtualBox, Status: 0xC0000225
  10. Genymotion模拟器及其相关虚拟机下载地址
  11. 腾讯下载QLV文件装换MP4
  12. Python数据分析到底可以用来做什么?
  13. 小知识:随机生成26个字母中(一个或多个)的字母
  14. matlab积分泛函,泛函积分的数学方法概观.pdf
  15. 挖财推出Android6.0版,大幅度减少跳转页面
  16. origin作图所用数据点太多,做图时需要跳过数个数据给一个标记的方法
  17. rpm包管理器常见用法
  18. LaTeX 数学公式编辑
  19. WebDriver 上传下载文件---(虫师《selenium3自动化测试实战--基于Python语言笔记22》)...
  20. 1368: 海军节上的鸣炮声计算

热门文章

  1. 方锥体积的计算公式以及定义 初中高中数学
  2. 特征值、特征向量及相似矩阵
  3. 异数OS-织梦师-PBFT(六) 走出区块链,加速破解PBFT
  4. mac 运行android模拟器速度慢,Android模拟器速度慢 启动时间长的解决办法
  5. in_array函数漏洞
  6. 大数据技术及大数据架构
  7. 一次Nginx 502问题解决
  8. CSI-RS接收流程
  9. 〖Python 数据库开发实战 - MySQL篇⑪〗- 修改数据表结构
  10. python求一个数的因子_0是素数吗(python求一个数的因子)