最近在自学小程序,但是网上大部分重点都放在了界面的设计上,涉及到后端的很少,博主索性写点博客总结一下。

#0X01  node.js环境搭建

不同于其他教程,本系列先重点介绍服务器端,后续再介绍客户端。

首先安装node.js环境,这里的系统使用的是CentOs7(我在腾讯云租的服务器,学生优惠一个月10块),用的源码安装。

1.下载源码

登录node.js官网,选择Source Code,一般我会选择LTS版本;或者使用命令行获取,不过要提前知道版本号:

wget http://nodejs.org/dist/v8.12.0/node-v8.12.0.tar.gz

2.安装c、c++环境

由于node.js是依靠c、c++环境的,我们首先需要安装c和c++环境。

yum -y install gcc
yum -y install gcc-c++

3.解压源码(最好安装和解压在同一个目录下)

tar zxvf node-v8.12.0.tar.gz

4.编译安装

cd node-v0.10.24
./configure --prefix=/usr/local/node/0.10.
make
make install

这里的/usr/local/node/0.10.24就是安装的位置,make过程会有点漫长,需要耐心等待。

5.配置“快捷方式”路径

vim /etc/profile

然后在 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 一行的上面添加如下内容:

#set for nodejs
export NODE_HOME=/usr/local/node/0.10.
export PATH=$NODE_HOME/bin:$PATH

:wq保存并退出,编译/etc/profile 使配置生效

source /etc/profile

6.验证安装

在命令行输入node -v ,输出v8.12.0即安装完成。

#0X02  nginx环境搭建

安装好node.js后,理论上可以直接进行开发,但是由于小程序规定只能使用https链接,所以要用到nginx做反向代理。

1.安装nginx

nginx在yum包中,可以直接安装:

yum install nginx -y

2.安装ssl证书

ssl证书的获取就不说了,我用过腾讯云和阿里云的服务器,都是有免费证书的,这里就不详说,详细介绍一下ssl证书的安装。

ssl证书获取到后,找到对应的服务器软件(这里使用的nginx),打开该文件夹,将其中的两个文件(.crt和.key)拷贝到/etc/nginx下。

然后在 /etc/nginx/conf.d 目录下创建 ssl.conf 文件,并输入以下内容(拷贝自腾讯云实验室)

server {
listen ;
server_name www.example.com; # 改为绑定证书的域名
# ssl 配置
ssl on;
ssl_certificate 1_www.example.com_bundle.crt; # 改为自己申请得到的 crt 文件的名称
ssl_certificate_key 2_www.example.com.key; # 改为自己申请得到的 key 文件的名称
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1. TLSv1.;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on; location / {
proxy_pass http://127.0.0.1:1234;
}
}

[注1]:有很多教程会修改上级目录中的nginx.conf文件,其实在本目录下创建任何*.conf文件和直接添加到nginx.conf文件中效果一样,这里我认为单独修改https路由比较方便

[注2]:proxy_pass http://127.0.0.1:1234中的1234可以修改为任意端口号,只要和后面讲到的app.js中端口号一致即可,这里就先随便设置一个,但要保证1024<port<65536(系统保留)

3.测试nginx

安装好后就可以进行测试,输入以下命令,若无报错则测试通过:

nginx

这是nginx启动命令,nginx关闭命令为:

nginx -s stop

至此,nginx安装完成,可以进行下一步程序操作。

#0X03  小程序环境搭建

小程序环境搭建相对于node.js就简单许多,直接在官网下载,然后根据提示安装即可,对下载工具之前要在平台注册小程序。

但是比较麻烦的是小程序获取appid,需要在官网申请等,虽然麻烦,但是不难,一点点都能弄好。

#0X04  附注

node.js有一个好用的进程管理包,叫PM2,我觉得最实用功能是可以让node程序在后台运行,不占用前台资源,如果有兴趣可以先安装好,感觉费劲的可以以后回过头再安装。这里我就简单介绍一下

1.安装

npm install -g pm2

2.使用

cd /你的文件目录
pm2 start app.js

3.退出

pm2 stop app.js

最后,希望大家能查一下npm是个什么东西,理解一下。

[小程序]_ELVE_小程序开发(1)的更多相关文章

  1. 微信小程序的认识和开发适用性

    来源:三节课课堂笔记 小程序认知 初识小程序.   目前微信小程序包括各类公众号接口的情况:   那么微信拥有的功能产品和对应的互联网产品有哪些:   小程序相当于AppStore应用分发市场:   ...

  2. 微信小程序购物商城系统开发系列-目录结构

    上一篇我们简单介绍了一下微信小程序的IDE(微信小程序购物商城系统开发系列-工具篇),相信大家都已经蠢蠢欲试建立一个自己的小程序,去完成一个独立的商城网站. 先别着急我们一步步来,先尝试下写一个自己的 ...

  3. 微信小程序购物商城系统开发系列-工具篇

    微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操作系统.新的生态,未来大部分应用场景都将 ...

  4. 微信小程序购物商城系统开发系列

    微信小程序购物商城系统开发系列 微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操作系统. ...

  5. 在WePY中实现了小程序的组件化开发,组件的所有业务与功能在组件本身实现,组件与组件之间彼此隔离,上述例子在WePY的组件化开发过程中,A组件只会影响到A所绑定的myclick

    wepyjs - 小程序组件化开发框架 https://tencent.github.io/wepy/document.html#/?id=%e5%be%ae%e4%bf%a1%e5%b0%8f%e7 ...

  6. 微信小程序开发系列一:微信小程序的申请和开发环境的搭建

    我最近也刚刚开始微信小程序的开发,想把我自学的一些心得写出来分享给大家. 这是第一篇,从零开始学习微信小程序开发.主要是小程序的注册和开发环境的搭建. 首先我们要在下列网址申请一个属于自己的微信小程序 ...

  7. Vue/小程序/小程序云+Node+Mongo开发微信授权、支付和分享

    大家好,我是河畔一角,今天给大家介绍我的第三门实战课程:基于微信开发的H5.小程序和小程序云的授权.支付和分享专项课程. 一.这一次为什么会选择微信支付和分享的课题呢? 金庸的小说中曾提到:有人的地方 ...

  8. 支付宝小程序室内地图导航开发-支付宝小程序JS加载esmap地图

    如果是微信小程序开发,请参考微信小程序室内地图导航开发-微信小程序JS加载esmap地图文章 一.在支付宝小程序里显示室内三维地图 需要满足的两个条件 调用ESMap室内地图需要用到小程序web-vi ...

  9. 微信小程序_(校园视)开发视频的展示页_上

    微信小程序_(校园视) 开发用户注册登陆 传送门 微信小程序_(校园视) 开发上传视频业务 传送门 微信小程序_(校园视) 开发视频的展示页-上 传送门 微信小程序_(校园视) 开发视频的展示页-下 ...

随机推荐

  1. DAY1 练习

    要求:⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化), 如果三次用完了之后 问是否再试试 再给三次机会 如果不想试了说没有机会了. list = [{'usernam ...

  2. ubuntu root 设置

    ubuntu16.04的root初始密码是随机的,每次开机都有一个新的root密码.具体修改方法是:sudo passwd输入自己用户名密码输入root密码su root输入密码登录

  3. PAT A1103

    PAT A1103 标签(空格分隔): PAT 解题思路: DFS #include <cstdio> #include <vector> using namespace st ...

  4. windows2012的服务器远程桌面提示内部错误的问题解决方法

    一.问题表象 我们在OpenStack安装了windows server2012r2版本的虚拟机,在本地通过远程桌面连接时,输入账号密码后,提示连接断开或者内部错误的问题 二.解决办法 1)windo ...

  5. Hibernate中get()和load()方法区别

    get和load方式是根据id取得一个记录下边详细说一下get和load的不同,因为有些时候为了对比也会把find加进来. 1.从返回结果上对比:load方式检索不到的话会抛出org.hibernat ...

  6. effective java——32用EnumSet代替位域

    什么是位域?为什么用到它?先来看一个例子: public class Test { public static final byte STYLE_BOLD = 1<<0; // 1 pub ...

  7. Maven中遇到Unsupported major.minor version 51.0错误

    将错误复制到某度上,查询出结果显示JDK版本不匹配. 我按着步骤执行结束后还是有以下错误: 配置: Tomcat: 最终解决: 我在Initialize的时候使用的版本是JDK1.8的,导致的这个错误 ...

  8. mysql5.5.25 中文问题 my.ini没有及配置问题 修改默认编码方式

    1.当你向mysql输入中文后,用select查询结果中文变成了问号,那你就往下看. 2.打开cmd,进入mysql,输入show variables like"%char%";可 ...

  9. 修改VScode行号区的背景颜色

    vs code是相当不错的一个编辑器,现阶段我用来编写nim程序. vs code非常丧心病狂一点就是行号区和编辑区的背景颜色都是一样, 这样会导致要看行首有没有对齐会非常吃力.这个问题让我纠结了非常 ...

  10. css中关于单位的一些问题

    Css中关于单位的一些问题 相对字体长度: Em:Em 是一个相对单位.起初排版度量时是基于当前字体大写字母”M”的尺寸的.当改变font-family时,它的尺寸不会发生改变,但在改变font-si ...