微信小程序云开发的服务器搭建流程是什么?

  • 回答 (6)
  • 关注 (2)
  • 查看 (2753)

作为小白想要请教大佬如何利用腾讯云服务器搭建微信小程序云开发的服务器?

艾迦号艾迦号提问于
青蛙克星哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈修改于
推荐

要完成后端服务器的配置,整体流程是这样的:

腾讯云针对上述痛点,为开发者们提供了一个微信小程序的云端脚手架,称为“微信小程序专用解决方案”,通过对云端代码的简单修改,就可以实现自己复杂的线上业务逻辑。楼主可以在腾讯云官网购买这个解决方案。

接下来我们开始利用他们的“专用服务”开始配置,在配置前请准备好

  1. 微信开发者账号一个,如果没有申请,登录微信官网申请。
  2. 确认微信客户端web开发工具已经安装好,如果没有安装,点这里
  3. 远程登录云服务器软件,如Xshell, Putty等。Xshell可以在官网下载并安装。

1. 创建服务

首先访问腾讯云-微信小程序资源页,创建服务

填写完信息,收到了开通的信息后,开始正式开通小程序。注意,如果没有AppID,需要首先点右边的“申请AppID”,去微信公众号页面注册并申请个人认证,然后才能得到微信小程序的开发者权限。

腾讯云为我们提供了多种可选的语言,选择一个我们自己最为熟悉的语言,这样我们可以对腾讯云提供的服务进行定制化的修改,这里我选择的是NodeJS。确认自己要创建的资源,扫码支付后,腾讯云会创建解决方案所需要的所有资源。

在选择好后,点击立即创建,然后进入等待创建的界面

我们可以看到,腾讯云为我们一键创建了多种云服务/比如负载均衡、业务云服务器、会话管理云服务器、云数据库等,还贴心的帮我们申请了一个免费的HTTPS证书,帮助我们来快速调试,免得我们没有SSL证书,免去申请证书的麻烦。

在等待大约10-20分钟后,我们就可以看到提示:

左侧的总览页面里,显示的就是腾讯云微信小程序解决方案为我们创建的所有云资源

2. 配置小程序

接下来,我们就可以开始进行微信小程序的配置了。

首先,我们要登陆微信小程序后台来修改域名配置

注意,小程序通信域名每个人是不一样的,自己的域名可以在配置指引中看到。

设置完成后,我们可以稍等几分钟重启微信开发者工具生效。

配置本地源码

接下来配置本地源码,安装微信小程序开发者工具,并下载官方Demo到本地。

在开发者工具中创建一个新的项目。AppID使用在微信公众号设置—开发设置中,可以看到已经申请并认证好的AppID,复制过来就可以。项目目录选择我们刚刚下载的源码的目录,然后点击添加项目,进入项目页面。注意:在这里必须填写AppID,否则后面连接服务器的请求无法完成。

打开开发者工具中的官方Demo后,在项目目录中可以看到根目录有app.js, app.json, config.js等很多文件,在这里找到config.js文件,它是我们本地的配置文件,双击并进行修改。

将其中

var host = '65169084.qcloud.la';

中的域名改为微信小程序解决方案资源视图中的“二级域名与证书“中的那个域名,注意,这个域名和你在微信公众号那个网站填的服务器配置是基本一样的。

修改完成后,保存,点击左侧的调试,进入调试界面,点击其中的预览,并扫码,就可以进入真机测试了!接下来,来看看我们的微信小程序做出的成品吧!

在这个官方Demo中,前端和后端通过配合实现了WebSocket长链接通信,使用账号登录、发送带会话的请求和WebSocket信道服务测试,如果都成功了,结果如图所示,如果在哪里失败了,可以参考腾讯官方提供的配置视频文件,重新配置一遍。

不不个了路遙知馬力 日久見人心。回答于

准备域名和证书

小程序后台服务需要通过 HTTPS 访问,在实验开始之前,我们要准备域名和 SSL 证书。

域名注册

如果您还没有域名,可以在腾讯云上选购,过程可以参考视频 - 在腾讯云上购买域名

域名解析

域名购买完成后, 需要将域名解析到实验云主机上,实验云主机的 IP 为:

<您的 CVM IP 地址>

在腾讯云购买的域名,可以到控制台添加解析记录,过程可参考视频 - 如何在腾讯云上解析域名

域名设置解析后需要过一段时间才会生效,通过 ping 命令检查域名是否生效 [?],如:

ping www.yourmpdomain.com

如果 ping 命令返回的信息中含有你设置的解析的 IP 地址,说明解析成功。

注意替换下面命令中的 www.yourmpdomain.com 为您自己的注册的域名

申请 SSL 证书

腾讯云提供了 SSL 证书的免费申请,申请方式可参考视频 - 在腾讯云上申请 SSL 证书

申请提交后,审批结果会以短信的形式通知。审批通过后,可以到 SSL 控制台下载您的证书文件

搭建小程序开发环境

在开始搭建我们的小程序服务器之前,需要先完成客户端小程序开发环境的搭建。

注册开发者账号

如果你还不是小程序开发者,请先在微信公众平台并注册:

具体注册流程可参考注册开发者账号视频:

若您已注册,请点击下一步。

配置小程序服务器信息

登录微信公众平台后,依次进入 设置 - 开发设置 - 服务器域名 - 修改

扫码完成身份校验后,request 合法域名和 socket 合法域名均填写在上一步准备好的域名地址。

配置完成后,点击 保存并提交。您可以搜索配置小程序服务器信息视频查看如何进行配置:

运行配套小程序代码

要运行本实验配套的小程序代码,请下载下列资源:

源码下载后,请解压到本地工作目录。

开发工具下载后,请安装并启动,然后用微信扫码登录。

登录后,选择 本地小程序项目 - 添加项目,使用以下配置:

  • AppID:填写小程序的 AppID,请登录公众平台后在 设置 - 开发设置 - 开发者 ID 中查看
  • 项目名称:填写任意您喜欢的名称
  • 项目目录:选择刚才解压的配套源码目录(目录包含 app.js

填写完成后,点击 添加项目。具体操作可查看运行配套小程序代码视频:

设置实验域名

在开发工具的 编辑 面板中,选中 app.js 进行编辑,需要修改小程序通信域名[?],请参考下面的配置:

App({
    config: {
        host: 'www.yourdomain.com' // 这个地方填写你的域名
    },
    onLaunch () {
        console.log('App.onLaunch()');
    }
});

当然,这步操作也录制了对应的设置实验域名视频

实验配套源码所用通信域名都会使用该设置,为了您顺利进行实验,请把域名修改为之前步骤准备的域名

搭建 HTTP 服务

下面的步骤,将带大家在服务器上使用 Node 和 Express 搭建一个 HTTP 服务器

安装 NodeJS

使用下面的命令安装 NodeJS

sudo apt-get update  
sudo wget https://mc.qcloudimg.com/static/archive/262420521a966befe17dfa0070ddb272/node-v6.11.0.tar.gz
sudo tar xvf node-v6.11.0.tar.gz
cd node-v6.11.0
sudo ./configure
sudo make
sudo make install  
sudo cp /usr/local/bin/node /usr/sbin/

安装完成后,使用下面的命令测试安装结果

node -v

编写 HTTP Server 源码

使用下面的命令在服务器创建一个工作目录:

sudo mkdir -p /data/release/webapp

进入此工作目录

cd /data/release/webapp

在工作目录创建 package.json 文件,并修改文件的访问权限。

sudo touch package.json
sudo chmod a+r+w package.json

修改 package.json 添加我们服务器包的名称和版本号,可参考下面的示例。

示例代码:/data/release/webapp/package.json
{
    "name": "webapp",
    "version": "1.0.0"
}

完成后,使用 Ctrl + S 保存文件

在工作目录创建 app.js

cd /data/release/webapp
sudo touch app.js
sudo chmod a+rw app.js

修改 app.js 文件,使用 Express.js 来监听 8765 端口[?],app.js文件可参考下面的示例代码。

示例代码:/data/release/webapp/app.js
// 引用 express 来支持 HTTP Server 的实现
const express = require('express');

// 创建一个 express 实例
const app = express();

// 实现唯一的一个中间件,对于所有请求,都输出 "Response from express"
app.use((request, response, next) => {
    response.write('Response from express');
    response.end();
});

// 监听端口,等待连接
const port = 8765;
app.listen(port);

// 输出服务器启动日志
console.log(`Server listening at http://127.0.0.1:${port}`);

本实验会以 8765 端口的打开作为实验步骤完成的依据,为了后面的实验步骤顺利进行,请不要使用其它端口号

运行 HTTP 服务

在开始之前,我们先来安装 [PM2]

sudo apt-get install npm
sudo npm install -g pm2

PM2 安装时间可能稍长,请耐心等候 

我们的服务器源码里使用到了 Express 模块,下面的命令使用 NPM 来安装 Express

cd /data/release/webapp
sudo npm install express --save

安装完成后,使用 PM2 来启动 HTTP 服务

cd /data/release/webapp
pm2 start app.js

现在,您的 HTTP 服务已经在 http://<您的 CVM IP 地址>:8765 运行

要查看服务输出的日志,可以使用下面的命令:

pm2 logs

如果要重启服务,可以使用下面的命令:

pm2 restart app

我们使用 PM2 来进行 Node 进程的运行、监控和管理

NPM 仓库在国内访问速度可能不太理想,如果实在太慢可以尝试使用 CNPM 的 Registry 进行安装:npm install pm2 -g --registry=https://r.cnpmjs.org/

搭建 HTTPS 服务

微信小程序要求和服务器的通信都通过 HTTPS 进行

安装 Nginx

在 Ubuntu 上,可直接使用 apt-get 来安装 Nginx

sudo apt-get install nginx -y

安装完成后,使用 nginx 命令启动 Nginx:

sudo /etc/init.d/nginx start
DEA林晨曦老司机回答于

流程如下:

购买腾讯云

到腾讯云官网上购买【云服务器CVM】,购买后分派两个ip地址,公网和内网的。我们做一些配置基本都是基于外网ip。Lefe 购买的是 Ubuntu

外网IP,就是公网IP,可以给外面人用的,例如做网站,或给其它人下载等。 肉网IP,就是局网IP,如果你有几台以上的云主机,可以局网传输数据,局网传输数据不占用外部带宽限制,传输大文件速度会快很多很多。

配置服务器

一、如何登录到服务器:

这里主要介绍一种登录方式: ssh的方式登录,这种方式相信很多同学都见过,比如 git。它需要把一台PC上生成的公钥传到服务器后台(腾讯云后台管理中心),这样服务器就可以信任当前的PC了。

  • PC端生成公钥: 打开终端输入:ssh-keygen , 一路回车,这时会生成一个公钥和一个私钥;
  • 终端输入:cat .ssh/id_rsa.pub,复制公钥,上传到腾讯云后台管理中心;
  • 终端输入:ssh ubuntu@118.89.23.181,ubuntu 这个会管理员账号,不同系统可能会不同,比如有的是 root,阿里云好像都是 root,118.89.23.181 这个是公网的 ip 地址。

登录成功后,终端显示如下:

二、安装 Node.js

主人公该上场了,有个 Node 我们才能开启我们基本的 Http 服务。

终端输入: curl -sL https://deb.nodesource.com/setup | sudo bash - sudo apt-get install nodejs

报错: The program ‘node’ is currently not installed. You can install it by typing: sudo apt install nodejs-legacy

执行下面语句: sudo apt install nodejs-legacy

终端输入: node -v ,查看你所安装 Node的版本号;

三、开启 Node 服务

这时候需要把 写好的 Node 服务克隆到服务器上, 建议读者自行实践一下。

  • 生成一个公钥,和登录时的生成方式一样,只不过这里是在服务器上生成的
  • 把生成好的公钥上传到 git 服务器上
  • 执行 git clone https://github.com/iMetalk/TCZNodeServer

这时候克隆一个自己写好的 Node;

克隆后在服务器上的目录为:

/home/ubuntu/nodeserver/WJCar_node

  • 执行 node app.js,这样服务就起来了。

四、安装 mongodb

可以参考这篇文章 Mongodb安装https://www.jianshu.com/p/1e3dcb0f7b74

五、PM2 安装

可以使用 NPM 安装。

把 node app.js 换成 pm2 start app.js

启动 mongodb 还有其他的一种方式:

sudo mongod --fork --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/mongodb2.log --logappend

六、申请域名

微信小程序必须使用域名而不是ip地址,申请一个域名,登录腾讯云后台解析,接口可以使用域名访问。

七、HTTPS 配置

选择腾讯云免费的 https证书。证书也有了,开始配置服务器了,代码如下:

var express = require('express');
var bodyparser = require('body-parser');
var router = require('./router.js');
var mongodb = require('./db/mongodb.js');
var fs = require('fs');
var https = require('https');
var http = require('http');

var app = express();
app.use(bodyparser.json());
app.use(bodyparser.urlencoded({
	extended: true
}));

var privateKey  = fs.readFileSync('./res/2_wqjp.lefe.wang.key', 'utf8');
var certificate = fs.readFileSync('./res/1_wqjp.lefe.wang_bundle.crt', 'utf8');
var credentials = {key: privateKey, cert: certificate};

var httpsServer = https.createServer(credentials, app);
var httpServer = http.createServer(app);

var SSLPORT = 4000;
var PORT = 4001;

var routeCB = function routeCallBack(req, res, next){
    if(req.url=="/favicon.ico"){
        res.end();
    }
    else
    {
        next()
    }
}

var dealCB = function  dealCallBack(req, res){
    // 解析post参数
    router.routed(req, res)
}

app.all('*', [routeCB, dealCB]);

// app.listen(4000);

httpsServer.listen(SSLPORT, function() {
    console.log('HTTPS Server is running on: https://localhost:%s', SSLPORT);
});

httpServer.listen(PORT, function() {
    console.log('HTTP Server is running on: http://localhost:%s', PORT);
});

八、配置 Nginx

Nginx (“engine x”) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

安装 Nginx:

  • gcc、g++依赖库 apt-get install build-essential apt-get install libtool
  • 安装 pcre依赖库(http://www.pcre.org/) sudo apt-get install libpcre3 libpcre3-dev
  • 安装 zlib依赖库(http://www.zlib.net) apt-get install zlib1g-dev
  • 安装 cd /usr/local/src wget http://nginx.org/download/nginx-1.4.2.tar.gz tar -zxvf nginx-1.4.2.tar.gz cd nginx-1.4.2
  • ./configure –sbin-path=/usr/local/nginx/nginx \ –conf-path=/usr/local/nginx/nginx.conf \ –pid-path=/usr/local/nginx/nginx.pid \ –with-http_ssl_module \ –with-pcre=/opt/app/openet/oetal1/chenhe/pcre-8.37 \ –with-zlib=/opt/app/openet/oetal1/chenhe/zlib-1.2.8 \ –with-openssl=/opt/app/openet/oetal1/chenhe/openssl-1.0.1t
  • make

如何才能 让https://wqjp.lefe.wang:400/api/store/get的请求指向https://wqjp.lefe.wang/api/store/get。只能修改配置文件了。配置文件如下,它同时支持 http 和 https。安装完后的 Nginx 在 /usr/local/ 目录下,找到配置文件 /usr/local/nginx/conf/nginx.conf,编辑这个配置文件。

#user  nobody;
worker_processes 1;
#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;
    server {
       listen       80;
       # 这个是你所申请的域名
       server_name  wqjp.lefe.wang;
       location / {
           root   /home/ubuntu/nodeserver/WJCar_node/WJCar;
           index  app.js;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header Host $http_host;
           proxy_set_header X-NginX-Proxy true;
           proxy_pass http://127.0.0.1:4001;
           proxy_redirect off;
        }
   }

    # HTTPS server
    server {
        listen 443;
        server_name wqjp.lefe.wang;
        ssl on;
        # 申请https证书的位置
        ssl_certificate /home/ubuntu/nodeserver/WJCar_node/WJCar/res/1_wqjp.lefe.wang_bundle.crt;
        # 申请https公钥的位置
        ssl_certificate_key /home/ubuntu/nodeserver/WJCar_node/WJCar/res/2_wqjp.lefe.wang.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
        location / {
           root   /home/ubuntu/nodeserver/WJCar_node/WJCar;
           index  app.js;
           proxy_redirect off;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_pass https://118.89.23.181:4000;
        }
    }
}
婷槟沃回答于

腾讯云提供免费一个月试用的服务器,微信那个解决方案也可以购买。

域名方面可以哟偶跟腾讯云的SSL证书,也是免费的。

坏蛋为你我手码我心回答于

使用小程序官方提供的IDE写

必须是https,必须完成备案!

其它没有啥要求,你可以共用一个web服务器

奥特曼奥特曼弹键盘,敲琴键回答于

注册小程序账号 注册一个邮箱账号,用这个邮箱账号注册一个小程序账号。

注册一个腾讯云账号 1.腾讯云实名认证后购买3元小程序解决方案

2..关联小程序和购买服务器

3.资源自动分配

4.域名变更(注意若是没有腾讯云的域名则需购买)

6.域名备案

可能回答问题的人

  • Justan

    腾讯 · 高级工程师 (已认证)

    15 粉丝0 提问5 回答
  • 李成熙heyli

    腾讯 · 高级工程师 (已认证)

    59 粉丝0 提问10 回答
  • 鲁文斌

    腾讯 · 产品经理 (已认证)

    5 粉丝0 提问0 回答
  • JoanLiu

    腾讯 · 产品经理 (已认证)

    12 粉丝0 提问0 回答
  • 腾讯云开发TCB

    腾讯科技有限公司 · 云开发(TCB)团队 (已认证)

    31 粉丝0 提问0 回答
  • Starkwang

    4 粉丝0 提问0 回答

扫码关注云+社区

领取腾讯云代金券