最近为了学习小程序开发及上线的流程,决定自己开发一个小程序,下面是我的开发和部署的过程.
开发
开发使用的mpvue+koa
-
首先要注册微信公众平台,申请小程序,开通腾讯云,这样你会有appId和用于测试的二级域名.
-
首先在微信小程序的开发环境的资源下载中下载node.js demo

-
我们只需要用到demo中的server文件夹.
-
快速构建一个mpvue的项目my-project 构建方法.
-
把server放到my-project中,作为后端服务,并在project.config.json中增加字段"qcloudRoot": "server/".
-
cd my-project -
npm install -
npm run dev -
下载小程序开发工具,并打开my-project项目(小程序开发工具也具有编辑功能,当然也可以用此直接开发,但是还是建议用自己熟悉的编辑器开发,毕竟用习惯了)
-
可以每次修改了server的代码,将最新代码通过腾讯云-上传测试代码到腾讯云的开发环境上进行测试,但是这样效率太低了,毕竟上传和部署并没有那么快,而且也不好调试,为了高效开发,我们采用本地调试.
如何开通本地调试?
1.在server/config.js中的CONF对象中增加如下代码
// 其他配置 ...
serverHost: 'localhost',
tunnelServerUrl: '',
tunnelSignatureKey: '27fb7d1c161b7ca52d73cce0f1d833f9f5b5ec89',
// 腾讯云相关配置可以查看云 API 密钥控制台:https://console.cloud.tencent.com/capi
qcloudAppId: '您的腾讯云AppID',
qcloudSecretId: '您的腾讯云SecretId',
qcloudSecretKey: '您的腾讯云SecretKey',
wxMessageToken: 'weixinmsgtoken',
networkTimeout: 30000
2.本地安装mysql,对于数据库的配置在config.js中
mysql: {
host: 'localhost',
port: 3306,
user: 'root',//数据库的用户名
db: 'cAuth',
pass: '数据库的密码',
char: 'utf8mb4'
}
3.新建数据库cAuth
4.cd server
5.npm install
6.npm run initdb
7.全局安装保存后自动更新的node程序
sudo npm install -g nodemon
8.可以愉快地启动了
npm run dev
至此本地服务已经搭建好了,端口在config.js中,现在我们可以愉快地开发前端页面了.
部署
首先可以直接使用腾讯云的小程序服务器,会方便很多,数据库和nginx已经安装配置了,不需要自己再麻烦操作.我的首选也是想直接用,但是在我想购买的时候发现没货了.没办法,只能自己来搭建一下了,下面是我配置阿里云服务器的过程.
-
购买阿里ECS服务器
-
购买域名(在阿里云平台上买的)
-
将域名解析到服务器
-
将域名进行备案(在阿里云平台按步骤进行,耗时比较久)
-
备案通过后,在微信小程序平台-开发-开发设置-服务器域名-设置合法域名
-
进入到你的服务器
-
安装nginx
1.添加Nginx存储库 sudo yum -y install epel-release2.安装nginx sudo yum -y install nginx3.启动Nginx sudo systemctl start nginx4.如果你在使用防火墙,需要进行设置 允许http通信 sudo firewall-cmd --permanent --zone=public --add-service=http 允许https通信 sudo firewall-cmd --permanent --zone=public --add-service=https 重启防火墙 sudo firewall-cmd --reload5.设置开机自启动 sudo systemctl enable nginx6.测试 在浏览器中键入你的ip或域名,如果能看到nginx的欢迎页面,说明已经安装并启动成功了7.申请ssl证书 因为小程序要求使用https协议,所以我们需要ssl证书. 可以在腾讯云https://console.cloud.tencent.com/ssl申请免费证书. 按提示步骤一步步申请,很快就能申请下来. 然后把申请下来的文件夹中Nginx中的.crt和.key文件拷贝到你的服务器上.8.配置nginx 进入到nginx的目录 cd /etc/nginx 可以看到目录下有conf.d,这里是nginx的配置文件放置的地方 cd conf.d 新建一个.conf的文件 配置如下: upstream app_nodejs { server 127.0.0.1:5757; //你的node服务地址 } server { listen 443 ssl; //https 的默认端口是443 server_name 你的域名; ssl_certificate /路径/xxx.crt; ssl_certificate_key /路径/xxx.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://app_nodejs; proxy_redirect off; } } 保存,退出9.重新加载配置文件 nginx -s reload 如果报这样类似的错误 nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory) 是因为/var/run目录下并不存在nginx.pid文件 解决方法一: 需要编辑nginx.conf,将pid这行的注释去掉,保存退出 查找nginx存在的目录 whereis nginx 发现nginx存在于下面几个地方 nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz 执行命令 /usr/sbin/nginx -c /etc/nginx/nginx.conf 进入到/var/run 可以看到nginx.pid存在了 此时执行nginx -s reload 会成功 解决方法二: 重新启动nginx service nginx stop service nginx start 进入到/var/run 可以看到nginx.pid存在了 此时执行nginx -s reload 会成功 这两个方法都可以试一下,我是第一次用的方法一成功了,第二次用的方法二才能成功,原因我也不清楚. -
安装mysql
-
安装node环境
-
安装pm2
-
安装git
-
将项目clone到服务器上
-
新建cAuth数据库
-
cd server
-
npm run install
-
npm run initdb
-
npm run start
-
pm2 list可以查看进程是否启动成功了
-
将小程序的请求地址指向你配置的域名地址
-
访问,看是否成功 至此,小程序服务器的部署就完成了.
现在可以用小程序开发工具上传小程序的代码到微信平台-提交审核了-发布上线了.
以上就是我的开发和部署的流程,当然期间有卡到一些地方,用了一两天才解决掉,当最后小程序可以请求成功的时候是很开心的.希望看到文章的你,服务也能部署的顺利.