0

    从零开始部署小程序服务器(腾讯云)

    2023.06.08 | admin | 168次围观

    从零开始部署小程序服务器(腾讯云)

    话说目前云已经很便宜了,腾讯有一个月的试用期,不过阿里云也有,而且对于学生认证的用户 9.9元一个月的最低配置,这让 Lefe 才有可能尝试配置一个线上的服务器。从一个小白开始,感觉都是新的东西,有时候碰到问题,很难,无从下手,不过通过网上的各种资料最终都解决了,下面主要讲一讲过程,这些知识对于服务器端的同学来说,应该很简单,但我只想记录下这一路走来所经历的!

    服务器是什么

    服务器是什么?啥,你竟然不知道服务器是啥,你每天都和服务器打交道。以 lefe 自己的理解,服务器和本地一台笔记本差不多,所以配置服务器也就是和配置本地的环境差不多,唯一不同的是各种操作,都需要终端命令来替代我们的图形化界面,比如建立文件夹,下载,解压等等。

    购买腾讯云

    到腾讯云官网上购买【云服务器CVM】,购买后分派两个ip地址,公网和内网的。我们做一些配置基本都是基于外网ip。Lefe 购买的是 Ubuntu

    外网IP,就是公网IP,可以给外面人用的,例如做网站,或给其它人下载等。

    肉网IP,就是局网IP,如果你有几台以上的云主机,可以局网传输数据,局网传输数据不占用外部带宽限制,传输大文件速度会快很多很多。

    配置服务器一、如何登录到服务器:

    我已经有ip地址了,可是我咋么才能登录到服务器上,来配置我们的环境呢?这里一般官方文档到会有写,不过一般写的比较粗略,对于我这个小白用户来说,看不太明白。这里主要介绍一种登录方式:

    ssh的方式登录开发小程序需要什么服务器,这种方式相信很多同学都见过,比如 git。它需要把一台PC上生成的公钥传到服务器后台(腾讯云后台管理中心),这样服务器就可以信任当前的PC了。

    登录成功后开发小程序需要什么服务器,你就可以随心所欲了,不要怕搞坏哦,终端显示如下:

    很简单吧,这样就可以登录到服务器上了。这里 lefe 推荐终端软件 iTerm

    注意:下面所讲到的都是基于登录到服务器后的操作。

    二、安装 Node.js

    主人公该上场了,有个 Node 我们才能开启我们基本的 Http 服务。

    终端输入:

    curl -sL | sudo bash -

    sudo apt-get install nodejs

    报错:

    The program 'node' is currently not installed. You can install it by typing:

    sudo apt install nodejs-legacy

    执行下面语句:

    sudo apt install nodejs-legacy

    终端输入:

    node -v ,查看你所安装 Node的版本号;

    嗯,这样 Node 就安装好了,还记得你第一安装 Node 吗?

    三、开启 Node 服务

    这时候需要把 Lefe 写好的 Node 服务克隆到服务器上,想想当你刚接触 git 的时候,你是如何把 github 上的代码克隆到自己电脑上的,如果是别人帮你弄的,lefe 建议读者自行实践一下。

    当然 lefe 这时候克隆的是一个自己写好的 Node;

    克隆后在服务器上的目录为:

    /home/ubuntu/nodeserver/WJCar_node

    Lefe:哎,不对哦,我有数据库啊,好吧,还需要安装数据库,不然我的数据从哪来?搞个假数据,你这也能想的出来。

    四、安装 mongodb

    Lefe:咋么安装呢?呵呵,都是 linux 系统,记得本地以前配置过,哎对了,以前还写过一片博客,翻了翻以前的博客,哎真有啊,开心坏了。不一会就安装好了。可以参考这篇文章

    Mongodb安装。

    关了几次终端,出现了一个问题:

    ubuntu@VM-68-186-ubuntu:/usr/local/mongodb/bin$ ./mongod --dbpath=/usr/local/mongodb/data/db/
    2017-05-14T11:09:50.823+0800 I CONTROL  [initandlisten] MongoDB starting : pid=21537 port=27017 dbpath=/usr/local/mongodb/data/db/ 64-bit host=VM-68-186-ubuntu
    2017-05-14T11:09:50.826+0800 I CONTROL  [initandlisten] db version v3.2.9
    2017-05-14T11:09:50.826+0800 I CONTROL  [initandlisten] git version: 22ec9e93b40c85fc7cae7d56e7d6a02fd811088c
    2017-05-14T11:09:50.826+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
    2017-05-14T11:09:50.826+0800 I CONTROL  [initandlisten] allocator: tcmalloc
    2017-05-14T11:09:50.826+0800 I CONTROL  [initandlisten] modules: none
    2017-05-14T11:09:50.826+0800 I CONTROL  [initandlisten] build environment:
    2017-05-14T11:09:50.826+0800 I CONTROL  [initandlisten]     distmod: ubuntu1404
    2017-05-14T11:09:50.826+0800 I CONTROL  [initandlisten]     distarch: x86_64
    2017-05-14T11:09:50.826+0800 I CONTROL  [initandlisten]     target_arch: x86_64
    2017-05-14T11:09:50.826+0800 I CONTROL  [initandlisten] options: { storage: { dbPath: "/usr/local/mongodb/data/db/" } }
    2017-05-14T11:09:50.880+0800 E NETWORK  [initandlisten] listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017
    2017-05-14T11:09:50.882+0800 E NETWORK  [initandlisten]   addr already in use
    2017-05-14T11:09:50.882+0800 E STORAGE  [initandlisten] Failed to set up sockets during startup.
    2017-05-14T11:09:50.882+0800 I CONTROL  [initandlisten] dbexit:  rc: 48
    

    这下坏了,纠结啊!!!看了看错误,好像是某个端口已经被占用了,98 Address already in use for socket: 0.0.0.0:27017,别怕 Google一下吧,果然很多人遇到了同样的问题,绕了一圈,最终得以解决。这种情况一般是不正常的退出 Mongodb 导致的。简单粗暴:sudo killall mongod,直接杀掉。

    哈哈,大功告成了,正高兴这呢。哎不对呀,如果我把终端关闭了,那我 Node 服务就死了,那还要服务器干吗呢?突然脑海中浮现出一个 PM2(你咋这么聪明呢,我咋只知道 PM2.5),这个家伙经常听后台的同学说,我一开始还以为是 pm2.5呢?抱着试一试的心态,Google 了一下,太神奇了,原来 PM2 就是解决这个问题的。

    五、PM2 安装

    看了看 官方文档 很快就安装好了,原来它可以使用 NPM 安装。

    试一试吧:就是把 node app.js 换成 pm2 start app.js

    原来看到后端同学屏幕上显示的原来就是这个东西。呀!不对呀,那我 mongodb 数据库关闭终端后也就会被挂起了,是不也可以使用 PM2 呢?最终发现不可以,那咋么办呢?估计和这个原理差不多,也开启一个守护进程。果不其然,启动 mongodb 还有其他的一种方式:

    sudo mongod --fork --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/mongodb2.log --logappend

    Lefe 开心的登录微信小程序后台,哎,不对,微信小程序必须使用域名而不是ip地址,好吧,只好妥协了,申请一个域名吧。

    六、申请域名

    都这么贵,.com, .cn,那就找一个最便宜的吧,哎有一个,lefe.wang,这个不错,天意呀,lefe 我的笔名,wang 我的姓,果断就选它了,登录腾讯云后台解析了下,很快的我的接口可以使用域名访问了。把域名配置到小程序后台,哎,不对呀,人家要求的是 https 的,这下悲剧了,好吧,我妥协。

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论