最近微信小程序异常火爆,不少人在学习,下面带着你们搭建下微信小程序的调试环境(client+server),并调试一套demo源码(JavaScript和node.js基础便可,微信推荐使用的语言,无前端编程基础,去菜鸟教程简单学习下 JavaScript,node.js,mysql便可),方便你们学习。html
微信小程序搭建环境必需的两点:云服务器,域名,下面一步步给搭建演示若是在一台阿里云服务器上搭建微信小程序服务端环境。前端
一、云服务器准备:可在阿里云购买轻量应用服务器或者ECS服务器(领取现金卷)node
领取现金券最低2折优惠,付款时候还可使用现金劵mysql
系统镜像选择CentOS 目前用的比较多的免费Linux系统,和ubuntu基本同样,首次购买可享受比较大的优惠,能够根据本身须要购买linux
若是是须要作微信小程序分销的能够直接购买阿里自营的移动分销商城(包含小程序商城)nginx
二、域名准备:阿里云服务器也可购买,这个能够随意购买个最便宜的随意后缀的域名sql
域名购买后,添加域名解析到前面购买的服务器IP地址上,而后须要申请ssl证书(博主实在阿里云上免费申请的,可是好像如今找不到了,不肯定,你们也能够百度下第三方申请)shell
阿里云又能够免费申请证书了,在阿里云注册域名之后,控制台-域名-域名列表数据库
两个条件准备好之后咱们下面开始搭建微信小程序的服务器环境。npm
一、设置远程链接服务器(浏览器操做太别扭),控制台找到本身的轻量应用服务器,并设置远程链接密码
设置密码
若是你们安装的不是纯净的centos环境,阿里云配套安装的软件不是很好用,能够重置系统
使用ssh工具链接服务器,安装须要的环境:(node.js、nginx、mysql5.7)
1、安装node.js
新建目录www
mkdir /www
cd /www
下载nodejs
wget https://npm.taobao.org/mirrors/node/v8.2.1/node-v8.2.1-linux-x64.tar.xz
解压
tar -xvf node-v8.2.1-linux-x64.tar.xz
测试是否安装成功
进入解压目录下的 bin 目录,执行 ls 命令
cd node-v8.2.1-linux-x64/bin && ls
有node 和 npm
测试
./node -v
安装成功
如今 node 和 npm 还不能全局使用,作个连接
ln -s /www/node-v8.2.1-linux-x64/bin/node /usr/local/bin/node
ln -s /www/node-v8.2.1-linux-x64/bin/npm /usr/local/bin/npm
如今能够全局使用了
2、安装nginx
Node.js 是单进程的,咱们能够经过多开 Node.js 并配合 Nginx 来实现多进程 Node.js 负载均衡,而且一些静态文件咱们也能够直接经过 Nginx 代理,提升性能。其中第一步就是安装 Nginx。
经过 SSH 链接上云服务器,直接使用包管理工具 yum 安装 Nginx 便可:
yum -y install nginx
安装完成以后会显示 Complete!,能够经过以下命令检查 Nginx 是否安装成功:
nginx -v
3、安装mysql5.7
一、配置YUM源
# 下载mysql源安装包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
# 安装mysql源
yum localinstall mysql57-community-release-el7-8.noarch.rpm
检查mysql源是否安装成功
yum repolist enabled | grep "mysql.*-community.*"
二、安装MySQL
yum install mysql-community-server
三、启动MySQL服务
systemctl start mysqld
查看MySQL的启动状态
shell> systemctl status mysqld
四、开机启动
systemctl enable mysqld
systemctl daemon-reload
五、修改root本地登陆密码
mysql安装完成以后,在/var/log/mysqld.log文件中给root生成了一个默认密码。经过下面的方式找到root默认密码,而后登陆mysql进行修改:
grep 'temporary password' /var/log/mysqld.log
登录并修改默认密码
mysql -u root -p
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码!';
新建一个数据库名为 cAuth,排序规则为 utf8mb4_unicode_ci,小程序后台用到
mysql>CREATE DATABASE IF NOT EXISTS cAuth,排序规则为 DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
服务端使用的工具软件已经安装好了,下面导入ssl证书,测试下nginx,
新建/data/release/nginx
使用sftp软件(FileZilla)链接服务器,把ssl证书放到/data/release/nginx目录下
上传后服务器上查询
上传完证书之后,能够开始配置 Nginx,进入服务器的 /etc/nginx/conf.d 目录,新建一个weapp.conf 文件,将文件拷贝到本地,打开编辑,写入以下配置(请将配置里 wx.ijason.cc 修改成你本身的域名,包括证书文件):
upstream app_weapp {server localhost:5757;keepalive 8;}server {listen 80;server_name www.yudingfan.com;rewrite ^(.*)$ https://$server_name$1 permanent;}server {listen 443;server_name www.yudingfan.com;ssl on;ssl_certificate /data/release/nginx/1_www.yudingfan.com_bundle.crt;ssl_certificate_key /data/release/nginx/2_www.yudingfan.com.key;ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA;ssl_session_cache shared:SSL:50m;ssl_prefer_server_ciphers on;location / {proxy_pass http://app_weapp;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection 'upgrade';proxy_set_header Host $host;proxy_cache_bypass $http_upgrade;}}
修改完将这个文件上传到服务器上,而后在 ssh 中输入:
nginx -t
若是显示以下信息,则配置成功:
配置成功以后,输入 nginx 回车,便可启动 Nginx。
若是访问 http://你的域名/weapp/a 会自动跳转到 HTTPS 上,并显示 502 Bad Gateway,则表示配置成功:
若是没有成功,使用netstat -ntpl查看下 nginx的https监听是否启动(443端口)
至此,服务端的环境已经彻底搭建好了
登录小程序官网,注册帐号,获取AppID(小程序ID),AppSecret(小程序密钥),配置服务器域名,域名须要备案后才能填写,备案所有操做能够在阿里云网上进行,大概1周左右
下载小程序开发工具,
下载demo源码:连接:https://pan.baidu.com/s/1i6I831z 密码:knsw
使用开发工具打开demo源码。
编辑server中的config.js(先在服务器上建立一下目录/data/release/weapp,也就是下面的rootPathname)
const CONF = {port: '5757',rootPathname: '', // /data/release/weapp// 微信小程序 App IDappId: '', // 微信小程序 App SecretappSecret: '',// 是否使用腾讯云代理登陆小程序useQcloudLogin: true, // 可直接使用微信登录小程序/** * MySQL 配置,用来存储 session 和用户信息 * 若使用了腾讯云微信小程序解决方案 * 开发环境下,MySQL 的初始密码为您的微信小程序 appid */mysql: {host: '云数据库内网IP',port: 3306,user: 'root',db: 'cAuth',pass: '云数据库密码',char: 'utf8mb4'},cos: {/** * 区域 * 华北:cn-north * 华东:cn-east * 华南:cn-south * 西南:cn-southwest * 新加坡:sg * @see https://cloud.tencent.com/document/product/436/6224 */region: 'cn-south',// Bucket 名称fileBucket: 'qcloudtest',// 文件夹uploadFolder: ''},// 微信登陆态有效期wxLoginExpires: 7200,// 其余配置 ...serverHost: '你的域名',tunnelServerUrl: 'http://tunnel.ws.qcloud.la',tunnelSignatureKey: '27fb7d1c161b7ca52d73cce0f1d833f9f5b5ec89',// 能够注册一个腾讯云帐号,获取一下配置。腾讯云相关配置能够查看云 API 秘钥控制台:https://console.cloud.tencent.com/capiqcloudAppId: '你的腾讯云 AppID',qcloudSecretId: '你的腾讯云 SecretId',qcloudSecretKey: '你的腾讯云 SecretKey',wxMessageToken: 'weixinmsgtoken',networkTimeout: 30000}module.exports = CONF
红色单引号里面都是必填项,修改好server后,修改下client中的host:"你申请的域名"
都配置好之后,如今须要将server端的代码上传的服务器上的/data/release/weapp目录下,
server代码上传后,cd /data/release/weapp下
代码传完后作以下操做:
输入如下命令切换npm
源到淘宝镜像,防止官方镜像下载失败:
npm config set registry https://registry.npm.taobao.org
使用npm安装全局依赖
npm install -g pm2
而后安装本地依赖:
npm install
接着使用 Demo 代码里的 tools/initdb.js 工具初始化数据库:
node tools/initdb.js
初始化成功则会提示“数据库初始化成功!”
接着执行以下代码启动 Node.js
node app.js
顺利完成以上操做,就完成了 Wafer Demo 在本身服务器上的部署。直接访问 http://你的域名/weapp/login,会提示:
{"code":-1,"error":"ERR_HEADER_MISSED"}
则表示配置成功。你如今可使用开发者工具来进行联调测试啦!
最后在小程序开发工具上点击测试登录接口和请求登录状态以下:
正确运行以下:
到此你就能够开发本身的小程序了