【建议收藏】Easy-Mock服务器部署-看这篇就够了

11,837 阅读6分钟

掘友好习惯^-^
收藏 + 点赞 + 评论

唠会题外话

前不久,我孤军奋战开源了基于Vue全家桶的移动电商项目ddBuy,截至目前已有13000+star,从开源到现在一直保持更新和迭代,某天凌晨3点收到了个老外的反馈说I can't read Chinese, can you have it in English to ddBuy,一大早醒来,摸了摸狗头,说干咱就干,不就是个国际化么,有望在下个版本支持国际化,你看乡村爱情都推国际化了,咱也不能掉队是不,接轨国际,面向未来….

服务器搭建Easy-Mock

回到正题,如何在自己的服务器上搭建属于自己的Easy-Mock呢?可能很多小伙伴开始絮叨了Easy-Mock 官网用它的不就完事了,白嫖他不香么~为啥我还要自己搭建,看看Easy-Mock的GitHub和贴吧你就明白了,这个网站经常性莫名其妙的挂,能正常使用都是拼人品…

好消息是官方早就开源了源代码,坏消息是,你得自己搭建,虽然叫Easy-Mock,但是它搭起来一点都不咋Easy呀,毕竟程序员最喜欢的是开箱即用的快感,但是,骚年,且慢,搭建Easy-Mock还是有点门槛的,但是,不要怂,不要怂,不要怂,我来手把手教你,教不会,你打我..

准备工作

  • 1.一台服务器(话说最近掘金上很多卖服务器的垃圾广告,可被搞惨了..哈哈哈,推荐大家到阿里云官网合法途径购买哈~)

  • 2.域名(个人觉得可有可无,因为需要域名备案,比较麻烦)

  • 3.跟着这篇教程一步一步走

暂时没有服务器可以看这篇本地搭建Easy-Mock

开搞

1.先通过ssh工具连接到你的服务器

ssh root@你的服务器地址

当你看到下面这张图,恭喜你,连接服务器成功,阿里BABA的怀抱向你敞开~~

2.安装node

检查自己服务器的node版本,如果node大于v8.x,那么强烈建议卸载高版本node,卸载高版本node,卸载高版本node安装node 8.x版本,node 8.x版,node 8.x版,因为我在这个shi坑里踩了好久…

// 下载node
cd /usr/local/src
wget https://nodejs.org/dist/v8.9.0/node-v8.9.0-linux-x64.tar.xz
## 解压
tar xf node-v8.9.0-linux-x64.tar.xz
cd /usr/local
## 重命名
mv src/node-v8.9.0-linux-x64 node

## 将node添加至path
vi ~/.bashrc
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH
source ~/.bashrc

## 安装成功
node -v  // 安装成功会显示Node版本

3.安装 MongoDB

cd /usr/local/src
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz    
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz
cd /usr/local
mv src/mongodb-linux-x86_64-3.0.6 mongodb

## path
vi ~/.bashrc
export MONGO_HOME=/usr/local/mongodb
export PATH=$MONGO_HOME/bin:$PATH
source ~/.bashrc

下载完毕之后,创建配置文件并启动服务:

##  创建数据目录
mkdir /data
mkdir /data/mongo

## 创建配置文件
vi /data/mongo/mongodb.cnf

其中配置文件的内容如下:

## /data/mongo/mongodb.cnf
dbpath=/data/mongo/

logpath=/data/mongo/mongo.log

logappend=true

fork=true

port=27017

journal=true 

通过读取配置文件启动 MongoDB 服务:

## 配置文件方式启动mongo
mongod -f /data/mongo/mongodb.cnf

mongod -f /data/mongo/mongodb.cnf & (放到后台执行)

4.安装 Redis

cd /usr/local/src
wget http://download.redis.io/releases/redis-2.8.17.tar.gz
tar xzf redis-2.8.17.tar.gz
cd redis-2.8.17
make

Make 完后 redis-2.8.17 目录下会出现编译后的 Redis 服务程序 redis-server,还有用于测试的客户端程序 redis-cli,两个程序位于安装目录 src 目录下。

启动 Redis 服务:
cd src ./redis-server &

5.部署Easy-Mock

如果没有 Libra 目录就新建该目录,我们将应用放在/usr/libra目录下:

cd /usr/libra
git clone https://github.com/easy-mock/easy-mock.git
## 安装依赖
cd easy-mock && npm install

修改Easy-Mock配置文件:

easy-mock文件夹下的config文件夹中修改default.js文件,
将所有的localhost替换成你自己服务器地址.

配置服务器安全组规则并开启7300端口

运行Easy-Mock

## 运行
[root@1.1.1.1 easy-mock]# npm run dev

> easy-mock@1.6.0 dev /usr/libra/easy-mock
> nodemon --ignore views/ --ignore public/ app

[nodemon1.14.11
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node app.js`
server started at http://0.0.0.0:7300

通过上面的部署,便可以访问 你的IP:7300端口访问 Easy Mock 的页面了。


请留步,你以为这样就好了嘛,当你关闭控制台后,再次访问,居然挂了.

原因是关闭控制台会默认将这个node进程关闭,所以会造成访问不了的尴尬菊面..

终极大招

PM2node进程守卫,保持永久在线.

## 安装pm2 
npm install -g pm2
## 使用pm2 运行全需要先build
npm run build
NODE_ENV=production pm2 start app.js

好了,短短的三行代码,就解决了关闭控制台,不能访问的尴尬菊面啦,真开森~

最后再温馨提示下哦,如果你的服务器node版本高于8.x真的会出现莫名其妙的错误哦,不信你试试看,错误代码我都给你贴上了,到时候出错了,可别打我哈哈哈哈~

高能预警:由于高版本node造成的Easy-Mock安装失败!!

Error: listen EADDRINUSE 0.0.0.0:7300
    at Server.setupListenHandle [as _listen2] (net.js:1334:14)
    at listenInCluster (net.js:1382:12)
    at doListen (net.js:1508:7)
    at process._tickCallback (internal/process/next_tick.js:63:19)
    at Function.Module.runMain (internal/modules/cjs/loader.js:745:11)
    at startup (internal/bootstrap/node.js:266:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:596:3)
Emitted 'error' event at:
    at emitErrorNT (net.js:1361:8)
    at process._tickCallback (internal/process/next_tick.js:63:19)
    [... lines matching original stack trace ...]
    at bootstrapNodeJSCore (internal/bootstrap/node.js:596:3)
[nodemon] app crashed - waiting for file changes before starting...

交个朋友吧👭

好了各位,以上就是这篇文章的全部内容了,洋洋洒洒一千多字,纯手工,手把手教学,非常感谢掘友们能看到这里,如果这篇文章写得有点东西,觉得「James」我有那么两下子的话, 来个赞👍来个评论,我都会非常非常的开心哒,创作艰辛,开源不易,有各位的支持和认可,就是我持续输出的最大动力,君子敬而无失,与人恭而有礼,四海之内,皆兄弟也,可以扫描下方二维码与我交朋友!

James | 文 【原创】

🎉开源电商项目:ddBuy

最后我在参掘金的年度征文:如果读完文章能有那么一丁点的启发的话,帮忙点个赞哈!

掘金征文

如果本篇博客有任何错误,请批评指教,不胜感激 !我们下篇再见Thanks♪(・ω・)ノ