搭建微信小程序教程:基于CentOS 7.6的教程

一个域名、一个SSL证书、一个程序账号、一台CentOS服务器。

然后主要的步骤就是:

1、解析域名;

2、部署服务器;

3、上传SSL证书;

4、填写小程序后台配置。

顺序没有绝对要求。

解析域名,在你买的域名管理控制台中,可以看到。

主机记录可以写www/a/b/c都可以,数字也可以,只要是域名允许的字符串。记录值就要写你的服务器的IP地址。

小程序有实例demo,可以下载下来,实验配套的源码

然后你需要在实验源码中的app.js中编辑你的通信域名:

App{

config: {

host:'yourdomain.com'//这个地方写你的域名

},

onLaunch () {

console.log('App.onLaunch()');

}

}

部署服务器(CentOS 7.6)搭建HTTP服务

第一步、安装NodeJS和NPM,使用下面的命令安装NodeJS 和测试命令;

#curl --silent --locationhttps://rpm.nodesource.com/setup_8.x

sudo bash - yum install nodejs -y

安装完成后,可以通过命令检查时候安装成功。

# node v

编写HTTP Server 的源码

在服务器创建工作目录

#mkdir-p/data/release/weapp

进入这个工作目录

#cd /data/release/weapp

创建package.json

在刚才创建的工作目录创建package.json

# vim package.json

然后在键盘输入法为英文状态下,按“i”键。代表"insert"输入:

{

"name":"weapp"

"version":"1.0.0"

}

完成后

先按esc 在按:

好了就已经完成输入并且保存了。

添加Server源码

在工作目录创建app.js,使用Express.js在监听8765端口,可参考下面的示例。

/**

* Created by x0rz on 21/01/2018.

*/

constexpress=require('express');

constapp=express();

app.use( (require, response,next) => {

reponse.write("Response from express");

reponse.end();

});

constport=8765;

app.listen(port);

conse.log(`Server Listening at http://127.0.0.1:$(port)`);

运行HTTP 服务

安装PM2

# npminstallpm2 --global

安装Express

#cd /data/release/weapp

#npminstallexpress --save

启动服务器,安装完成后,需要用PM2来启动命令

#cd /data/release/weapp

# pm2 start app.js

此时您的HTTP已经可以运行了,

http://yourip/youdomain.com:8765

要看服务器输出的日志,可以查看:

# pm2 log

如果要重启服务,请使用下面的命令

# pm2 restart app

搭建HTTPS服务

安装Nginx

# yuminstallnginx -y

启动

# nginx

此时,您的http://yourdomain.com可以看到Ngxin页面。

重启命令:

# nginx -sreload

配置Nginx反向代理

外网用户访问服务器的Web服务器有Nginx提供,Nginx需要配置反向代理才能使得Web服务转发到本地的Node服务。将之前准备好的SSL证书解压后上传到/etc/nginx文件夹中。

##########关于上传SSL证书的过程,将单独写教程#################

教程将会Apache、Nginx搭配Ubuntu/CentOS的部署方法。

安装数据库

MangoDB

# yuminstallmongodb-server mongodb -y

安装结束后,查看版本

# mangod --version

添加MangoDB用户

##略

实现小程序的会话

安装Node模块

#cd /data/release/weapp

#npminstall connect-mongo wafer-node-session --save

在工作目录创建配置文件config.js,用于我们保存服务器所有的配置,

module.exports = {

serverPort:'8765',

// 小程序 appId 和 appSecret

// 请到 https://mp.weixin.qq.com 获取 AppID 和 AppSecret

appId:'YORU_APP_ID',

appSecret:'YOUR_APP_SECRET',

// mongodb 连接配置,生产环境请使用更复杂的用户名密码

mongoHost:'127.0.0.1',

mongoPort:'27017',

mongoUser:'weapp',

mongoPass:'weapp-dev',

mongoDb:'weapp'

};

编辑app.js,添加会话逻辑

// 引用 express 来支持 HTTP Server 的实现

constexpress=require('express');

// 引用 wafer-session 支持小程序会话

constwaferSession=require('wafer-node-session');

// 使用 MongoDB 作为会话的存储

constMongoStore=require('connect-mongo')(waferSession);

// 引入配置文件

constconfig=require('./config');

// 创建一个 express 实例

constapp=express();

// 添加会话中间件,登录地址是 /login

app.use(waferSession({

appId:config.appId,

appSecret:config.appSecret,

loginPath:'/login',

store:newMongoStore({

url:`mongodb://$:$@$:$/$`

})

}));

// 在路由 /me 下,输出会话里包含的用户信息

app.use('/me', (request, response,next) => {

response.json(request.session ? request.session.userInfo : {noBody:true});

if(request.session) {

console.log(`Wafer session success with openId=$`);

}

});

// 实现一个中间件,对于未处理的请求,都输出 "Response from express"

app.use((request, response,next) => {

response.write('Response from express');

response.end();

});

// 监听端口,等待连接

app.listen(config.serverPort);

// 输出服务器启动日志

console.log(`Server listening at http://127.0.0.1:$`);

源码编写完成,需要重启服务。

# pm2 restart app

其他的模块,比如有WebSocket服务,原理都是通过.js文件来实现,不过要安装相应的Node模块。

后台的逻辑就不介绍了

总结:

没啥总结了。还有Windows和Ubuntu。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180121G0JXIM00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券