养成好习惯^-^
收藏 + 点赞 + 评论
唠会题外话
前不久,我孤军奋战开源了基于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坑里踩了好久…
// 下载nodecd /usr/local/srcwget https://nodejs.org/dist/v8.9.0/node-v8.9.0-linux-x64.tar.xz
## 解压
tar xf node-v8.9.0-linux-x64.tar.xzcd /usr/local
## 重命名
mv src/node-v8.9.0-linux-x64 node
## 将node添加至path
vi ~/.bashrc
export NODE_HOME=/usr/local/nodeexport
PATH=$NODE_HOME/bin:$PATHsource
~/.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 /datamkdir /data/mongo
## 创建配置文件
vi /data/mongo/mongodb.cnf
其中配置文件的内容如下:
## 配置文件方式启动mongomongod -f /data/mongo/mongodb.cnfmongod -f /data/mongo/mongodb.cnf & (放到后台执行)
通过读取配置文件启动 MongoDB 服务:
## 配置文件方式启动mongomongod -f /data/mongo/mongodb.cnfmongod -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/libragit 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
[nodemon] 1.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
进程关闭,所以会造成访问不了的尴尬菊面..
终极大招
用PM2
对node
进程守卫,保持永久在线.
## 安装pm2 npm install -g pm2## 使用pm2 运行全需要先buildnpm run buildNODE_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♪(・ω・)ノ
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。