前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >搭建微信小程序教程:基于CentOS 7.6的教程

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

作者头像
赵腰静
发布于 2018-03-09 07:08:19
发布于 2018-03-09 07:08:19
3.3K00
代码可运行
举报
文章被收录于专栏:程序猿程序猿
运行总次数:0
代码可运行

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

然后主要的步骤就是:

1、解析域名;

2、部署服务器;

3、上传SSL证书;

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

顺序没有绝对要求。

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
App{
  config: {
    host: 'yourdomain.com' //这个地方写你的域名
  },
  onLaunch () {
    console.log('App.onLaunch()');
  }
}

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#curl --silent --location https://rpm.nodesource.com/setup_8.x | 
sudo bash - yum install nodejs -y

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# node v

编写HTTP Server 的源码

在服务器创建工作目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#mkdir -p /data/release/weapp

进入这个工作目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#cd /data/release/weapp

创建package.json

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

# vim package.json

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "name": "weapp"
  "version": "1.0.0"
}

完成后

先按esc 在按: <----注意这个是个冒号,就是要按冒号出来,然后再按shift+1,再按q 回车,退出。

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

添加Server源码

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * Created by x0rz on 21/01/2018.
 */

const express = require('express');
const app = express();
app.use( (require, response, next) => {
    reponse.write("Response from express");
    reponse.end();
});

const port = 8765;
app.listen(port);
conse.log(`Server Listening at http://127.0.0.1:$(port)`);

运行HTTP 服务

安装PM2

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# npm install pm2 --global 

安装Express

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#cd /data/release/weapp
#npm install express --save

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#cd /data/release/weapp
# pm2 start app.js

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://yourip/youdomain.com:8765

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# pm2 log

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# pm2 restart app

搭建HTTPS服务

安装Nginx

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# yum install nginx -y

启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# nginx

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

重启命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# nginx -s reload 

配置Nginx反向代理

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

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

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

安装数据库

MangoDB

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# yum install mongodb-server mongodb -y

安装结束后,查看版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# mangod --version

添加MangoDB用户

##略

实现小程序的会话

安装Node模块

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#cd /data/release/weapp
#npm install connect-mongo wafer-node-session --save

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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, 添加会话逻辑

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 引用 express 来支持 HTTP Server 的实现
const express = require('express');
// 引用 wafer-session 支持小程序会话
const waferSession = require('wafer-node-session');
// 使用 MongoDB 作为会话的存储
const MongoStore = require('connect-mongo')(waferSession);
// 引入配置文件
const config = require('./config');
// 创建一个 express 实例
const app = express();
// 添加会话中间件,登录地址是 /login
app.use(waferSession({
  appId: config.appId,
  appSecret: config.appSecret,
  loginPath: '/login',
  store: new MongoStore({
    url: `mongodb://${config.mongoUser}:${config.mongoPass}@${config.mongoHost}:${config.mongoPort}/${config.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=${request.session.userInfo.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:${config.serverPort}`);

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# pm2 restart app

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

后台的逻辑就不介绍了

总结:

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据库SQL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
i.MX6ULL嵌入式Linux开发2-uboot移植实践
上篇文章,我们介绍了如何使用NXP原厂的uboot进行编译和烧写,将uboot运行在自己的开发板上。NXP原厂的uboot,直接烧录到我的开发板中,LCD的驱动是不正常的,需要进行修改。本篇我们就来继续研究uboot,「使得uboot能匹配我们自己的开发板」。
xxpcb
2021/07/20
1.6K0
i.MX6ULL嵌入式Linux开发1——uboot移植初探
本系列教程以「i.MX6ULL」处理器的ARM开发板为实验基础,学习记录嵌入式Linux开发的各种知识与经验,主要内容包括嵌入式Linux移植,嵌入式Linux驱动开发,嵌入式Linux应用开发等。
xxpcb
2021/07/20
2.7K0
i.MX6ULL嵌入式Linux开发4-根文件系统构建
前面几篇介绍了uboot的移植与内核的移植,本篇进行根文件系统的构建,这是Linux移植三大组成部分的最后一步,根文件系统构建好后,就构成了一个基础的、可以运行的嵌入式Linux最小系统。
xxpcb
2021/08/13
1.2K0
移植NXP官方 linux 5.4 内核到i.MX6ULL开发板
NXP官方linux仓库地址为:https://github.com/Freescale/linux-fslc/tree/5.4-2.1.x-imx。
Mculover666
2022/05/23
3.6K0
移植NXP官方 linux 5.4 内核到i.MX6ULL开发板
i.MX6ULL嵌入式Linux开发6-系统烧写到eMMC与遇到的坑!
前进几篇文章,已经搞定了Linux移植三巨头:uboot、kernel(包含dtb)和rootfs,除了uboot是烧写在SD中的,其它的都是在ubuntu虚拟机的nfs服务器中,运行时必须通过网络将这些文件加载到开发板的内存中运行。
xxpcb
2021/09/09
2.4K0
【i.MX6ULL】驱动开发11——LCD驱动实践
之前在Linux系统移植时提到过LCD驱动,本篇来看下Linux设备树如何配置LCD驱动。
xxpcb
2021/12/27
1.7K0
【i.MX6ULL】驱动开发11——LCD驱动实践
全志H3 | 移植主线最新uboot 2023.04和kernel 6.1.11到Nanopi NEO开发板
编译器下载地址:Downloads | GNU-A Downloads – Arm Developer[1]
Mculover666
2023/08/18
2.3K0
全志H3 | 移植主线最新uboot 2023.04和kernel 6.1.11到Nanopi NEO开发板
移植Linux4.14.13到imx6ull
复制一份imx_v6_v7_defconfig,这里我命名为dfos_mini_defconfig。
哆哆jarvis
2022/08/23
2.6K0
移植Linux4.14.13到imx6ull
【i.MX6ULL】驱动开发5——设备树原理与点亮LED
上篇文章(【i.MX6ULL】驱动开发4--点亮LED(寄存器版))介绍了在驱动程序中,直接操作寄存器了点亮LED。本篇,介绍另外一种点亮LED的方式——设备树,该方式的本质也是操作寄存器,只是寄存器的相关信息放在了设备树中,配置寄存器时需要使用OF函数从设备树中读取处寄存器数据后再进行配置。
xxpcb
2021/10/19
1.8K0
【i.MX6ULL】驱动开发5——设备树原理与点亮LED
IMX6ULL驱动开发实战连载-02设备树的编译和加载
上面介绍的编译模块是和内核一起编译的,这种编译方式比较耗时。在Linux3.x 以后的版本才引入了设备树,有了设备树之后,只需要一次编译内核,编译内核的时候会生成的dtc 工具,利用dtc工具就可以完成驱动的编译。我们这里只是简单介绍如何编译设备树、加载设备树,关于设备树,后面会有更加详细的解释。
嵌入式与Linux那些事
2021/05/20
2.6K0
IMX6ULL驱动开发实战连载-02设备树的编译和加载
构建一个适合stm32mp157系列开发板的嵌入式Linux系统
Linux平台上有许多开源的嵌入式linux系统构建框架(框架的意思就是工具),这些框架极大的方便了开发者进行嵌入式系统的定制化构建,目前比较常见的有OpenWrt, Buildroot, Yocto,等等。其中Buildroot功能强大,使用简单,而且采用了类似于linux kernel的配置和编译框架,所以受到广大嵌入式开发人员的欢迎。
韦东山
2020/10/14
5.2K0
[干货]手把手教你用Zedboard学习Linux移植和驱动开发
部分硬件设计中需要CPU完成对电路寄存器的配置,为了完成Zedboard对FPGA上部分寄存器的配置功能,可以在PS单元(处理器系统)上运行裸机程序(无操作系统支持)完成和PL单元(FPGA部分)的数据交互功能,此时PS单元更像单片机开发;另一种方法是PS单元运行Linux操作系统,通过驱动程序和应用程序完成对硬件寄存器的读写操作,并且Linux有着完整的网络协议栈支持,后续可拓展性更强,可以更好的发挥ZYNQ这种异构架构芯片的性能。主要分为两部分,分别阐述Zedboard中FPGA和处理器互联总线与硬件设计和Zedboard处理器系统上嵌入式Linux的移植与通过驱动和应用程序简单配置FPGA寄存器的实现。上次介绍了没有操作系统下的驱动和应用程序开发,本文介绍带操作系统的驱动和应用程序开发。
网络交换FPGA
2019/10/29
7.6K2
[干货]手把手教你用Zedboard学习Linux移植和驱动开发
Linux Kernel 和 U-Boot 编译的那些事
之前的文章:《一次搞定交叉编译》 给大家讲了如何安装交叉编译工具链,搭建交叉编译环境。
HackforFun
2020/01/13
2.8K0
Linux Kernel 和 U-Boot 编译的那些事
开发板的第 1 个驱动程序
请按前面第七章使用 GIT 下载源码、使用 repo 下载工具链,并配置了交叉编译工具链。
韦东山
2020/09/30
1.7K0
开发板的第 1 个驱动程序
【i.MX6ULL】驱动开发12——电容触摸驱动实践(上)
上篇文章介绍了LCD屏幕的使用,这个屏幕还有触摸功能,本篇就来介绍LCD的触摸功能的使用。
xxpcb
2022/01/05
1.2K0
【i.MX6ULL】驱动开发12——电容触摸驱动实践(上)
busybox引导linux内核_linux移植教程
【点此进入busybox官网】,网站链接为:https://busybox.net/。进入官网后依次查找下述菜单,进入下载页面。
全栈程序员站长
2022/11/08
6.2K0
基于AM335X开发板 (ARM Cortex-A8)——Linux系统使用手册 (上)
本篇文章主要讲解嵌入式板卡中Linux系统是如何正确测试、使用的,其中内容包含有U-Boot编译、U-Boot命令和环境变量说明、Linux内核编译、xtra驱动编译、系统信息查询、程序开机自启动说明、NFS使用说明、TFTP使用说明、TFTP + NFS的系统启动测试说明、inux设备驱动说明等,其中案例源码部分公开。
创龙科技Tronlong
2022/06/24
2.1K0
基于AM335X开发板 (ARM Cortex-A8)——Linux系统使用手册 (上)
编译树莓派Linux内核[通俗易懂]
  Raspberry Pi 内核Linux代码存储在 GitHub 中,可以在github.com/raspberrypi/linux上查看。
全栈程序员站长
2022/09/15
7.5K0
Buildroot系统构建学习笔记(以百问网imx6ull开发板为例)
最近在学习音视频开发相关的内容,故硬件选型是非常重要的,加上芯片缺货,为了保证未来芯片供应链正常,结合预测趋势以及对芯片行业相关的定量分析 ,最终我选择了瑞芯微刚推出不久的芯片:RV1126_RV1109系列,为了高效学习,我将瑞芯微平台SDK里提供的docs目录下的文档做了分类整理和汇总,以便后期在工作中用到相应的知识可以很快的查阅到相关的资料高效完成调试和开发:
杨源鑫
2021/07/07
1.9K0
Buildroot系统构建学习笔记(以百问网imx6ull开发板为例)
荔枝派Zero(全志V3S)编译Uboot及配置
本文讲述了如何编译uboot并进行配置,对编译过程中遇到的问题进行解决,此外还对uboot的结构进行了简介
Gnep@97
2023/08/10
8650
荔枝派Zero(全志V3S)编译Uboot及配置
推荐阅读
相关推荐
i.MX6ULL嵌入式Linux开发2-uboot移植实践
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档