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

艾迦号艾迦号提问于
不不个了路遙知馬力 日久見人心。回答于

准备域名和证书

小程序后台服务需要通过 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

回答过的其他问题

自然场景文字识别技术及在地图中的应用

不不个了路遙知馬力 日久見人心。
推荐
地图文本识别技术创新         1) 卷积过程基于GoogLeNet的Inception 结构进行改进,采用不同大小的卷积核意味着不同大小的感受野,最后拼接不同尺度特征,提升网络性能。 [图片]         2)修改解码方式,支持多候选和文字位置的输出,校正识别结果。如...... 展开详请

数据可视化在生活的哪里可以应用?

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

腾讯云大数据可视交互系统RayData的图简洁明了又好看。赞一个!

图像比较快速GPU算法查找未命中匹配

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

我能想到的最快的解决方案。将图像转换为灰度,对这两幅图像执行xor,然后使用聚类算法查找边界框。

Azure CLI Windows VM创建os磁盘大小

不不个了路遙知馬力 日久見人心。
我们实际上发布了一个使用较小磁盘而不是默认128GB的Windows Server Edition。托管磁盘无法调整大小,仅向上调整大小。因此,如果要在Windows Server上部署较小的操作系统磁盘,则应使用映像名称中带有[smalldisk]的任何映像 📷 如果部署...... 展开详请

Angular 6+如何更改默认端口4200

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

您还可以在服务时始终指定端口: ng serve --port 3000

您可以在那里放置任何有效的端口号,它将从该端口提供服务。

如何在C#中使用全局变量?

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

在C#中没有全局变量这样的东西。期。

如果需要,您可以拥有静态成员:

public static class MyStaticValues
{
   public static bool MyStaticBool {get;set;}
}

扫码关注云+社区

领取腾讯云代金券