购买云主机,选择ubuntu系统,通过管理终端连接服务器,通过root用户登录。
用adduser命令新建一个用户,以后通过ssh连接时使用这个用户名。
把用户添加到sudo 用户组,给用户执行sudo级别命令的权限。
sudo adduser <username> sudo
通过ssh连接到远程主机。
ssh username@host
先从ubuntu的代码库里安装构建工具包必须的软件包:
sudo apt-get update sudo apt-get install build-essential libssl-dev
到 nvm项目主页 上找到安装命令(ubutun下用wget):
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash
为了在不退出的前提下使用nvm,还要重新编译一下自己的profile:
source ~/.profile
执行 nvm ls-remote
,检查安装是否成功。
用nvm安装node.js
nvm i 5.11.1
查看Node所在的目录:
which node
为了让node应用在80端口下执行,需要把nvm中node用下面的命令复制到/usr/local/bin下面:
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local
连接云服务器管理终端,执行 which node
,应该看到:
/usr/local/bin/node
以后要启用新的node,还要再次执行这一步骤。
在Linux上,1024以下的端口只能开放给root使用,为了允许新建的用户在80端口下启动node应用,可以执行下面两条命令:
sudo apt-get install libcap2-bin sudo setcap cap_net_bind_service=+ep /usr/local/bin/node
PM2是Node.js应用的进程管理器,自带负载均衡。将pm2安装在全局环境下:
npm i -g pm2
导入公钥
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
给mongodb创建一个list文件
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
重载本地包数据库
sudo apt-get update
安装Mongodb
sudo apt-get install -y mongodb-org
启动mongodb
sudo service mongod start
安装git
sudo apt-get install git
创建裸仓库
mkdir weixin.git cd weixin.git git --bare init
创建工作目录
git clone ./weixin.git ./weixin
首次提交
echo "Weixin API Server" > README.md git add . git config --local user.name username git config --local user.email username@mail.com git commit -m "Add README.md" git push origin master
clone到本地
git clone username@host:/path/to/weixin.git
在公众号的开发工具中,可以申请公众平台测试账号。
测试账号申请通过后,可以得到测试用的appID及appSecret。扫描测试号的二维码,可以打开与测试账号的对话框。
npm init
初始化项目 安装express
npm i -S express
安装wechat
npm i -S wechat
安装wechat-api
npm i -S wechat-api
创建测试应用 index.js
var http = require('http'); var API = require('wechat-api'); var api = new API(appID,appSecret); var express = require('express'); var app = express(); var wechat = require('wechat'); var config = { appid: appID, appsecret: appSecret, token: token }; app.use(express.query()); app.use('/', wechat(config, function (req, res, next) { var message = req.weixin; console.log(message); res.reply("Hello"); })); /* * 响应微信测试服务器的连接验证 **/ app.get('/', function(req, res){ var echostr = req.query.echostr, signature = req.query.signature; console.log(signature); res.send(req.query.echostr); }); /* * 测试获取token命令 **/ app.get('/get_token',function(req,res) { api.getLatestToken(function(err,token) { res.send(token); }); }); app.listen(80); console.log("Server running at http://127.0.0.1:80/");
用pm2启动刚刚创建的测试应用
sudo pm2 start index.js
在测试号管理中添加测试服务器信息,token可以随便填。
访问测试服务器上的/get_token地址,检查浏览器中显示的消息是否有效。