聲明
由于文章比較久遠(yuǎn)了裤唠,當(dāng)時(shí)安裝的easy-mock版本大概是V1.2.3的洽糟,可能跟現(xiàn)在easymock版本相差比較多了蔓榄,大家看的時(shí)候可以關(guān)注一下坑點(diǎn),但是安裝步驟還是參考官方文檔比較好他嚷。官方文檔傳送門(mén)
1. 安裝nodejs
在root用戶下運(yùn)行
# Run as root on RHEL, CentOS or Fedora:
# 在root用戶下運(yùn)行一下兩句命令
curl -sL https://rpm.nodesource.com/setup | bash -
yum install -y nodejs
發(fā)現(xiàn) install nodejs提示
Error: Package: 1:nodejs-6.11.1-1.el7.x86_64 (eles-epel)
Requires: http-parser >= 2.7.0
查了下是epel的問(wèn)題蹋绽,于是運(yùn)行
yum install epel-release
發(fā)現(xiàn)還是報(bào)錯(cuò),百度說(shuō)需要更新python版本(后來(lái)發(fā)現(xiàn)不是python的問(wèn)題)
# 將舊版本的python保留下來(lái)
mv /usr/bin/python /usr/bin/python2.7.5
# 安裝依賴組件
sudo yum -y install gcc make gcc-c++ openssl-devel wget
# 下載python
cd /usr/local/src
wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz
./configure --prefix=/usr/local/python27
make
make install
ln -s /usr/local/python27/bin/python2.7 /usr/bin/python
安裝好python后筋蓖,發(fā)現(xiàn)運(yùn)行yum install提示yum模塊不存在卸耘,按照百度到的方法修改yum的運(yùn)行腳本即可(如果不更新python,就不需要這個(gè)操作)
# root權(quán)限下
cd /usr/bin
vi yum
# 將第一句改為指向舊版本的python粘咖,保存即可
#!/usr/bin/python >> #!/usr/bin/python2.7.5
結(jié)果鬧騰了一圈發(fā)現(xiàn)回到原地仍然有這個(gè)報(bào)錯(cuò):
Error: Package: 1:nodejs-6.11.1-1.el7.x86_64 (epel)
Requires: libhttp_parser.so.2()(64bit)
Error: Package: 1:nodejs-6.11.1-1.el7.x86_64 (epel)
Requires: http-parser >= 2.7.0
好吧原來(lái)是要安裝http-parser鹊奖,不是很懂這些依賴,直接按照網(wǎng)上的方法來(lái)
sudo rpm -ivh https://kojipkgs.fedoraproject.org//packages/http-parser/2.7.1/3.el7/x86_64/http-parser-2.7.1-3.el7.x86_64.rpm
繼續(xù)安裝又報(bào)錯(cuò)
Total download size: 7.1 M
Installed size: 26 M
Downloading packages:
Traceback (most recent call last):
File "/usr/libexec/urlgrabber-ext-down", line 22, in <module>
from urlgrabber.grabber import
ImportError: No module named urlgrabber.grabber
Traceback (most recent call last):
File "/usr/libexec/urlgrabber-ext-down", line 22, in <module>
from urlgrabber.grabber import
ImportError: No module named urlgrabber.grabber
Traceback (most recent call last):
File "/usr/libexec/urlgrabber-ext-down", line 22, in <module>
from urlgrabber.grabber import
ImportError: No module named urlgrabber.grabber
百度了一下說(shuō)要,vi /usr/libexec/urlgrabber-ext-down
把頭部的python改成和/usr/bin/yum中一樣的(如果不更新python涂炎,就不需要這個(gè)操作)
vi /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python >> #!/usr/bin/python2.7.5
最后終于安裝好nodejs了
2. 安裝mongodb,并配置數(shù)據(jù)庫(kù)
# 獲取mongodb
touch /etc/yum.repos.d/mongodb-org-3.4.repo
vi /etc/yum.repos.d/mongodb-org-3.4.repo
# 在mongodb-org-3.4.repo寫(xiě)入
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
# 用yum命令安裝
sudo yum install -y mongodb-org
# 新建數(shù)據(jù)庫(kù)儲(chǔ)存文件夾
mkdir /data/db
# 啟動(dòng)mongod
mongod
# 新建數(shù)據(jù)庫(kù)easymockdb
mongo #進(jìn)入數(shù)據(jù)庫(kù)
> use easymockdb #新建數(shù)據(jù)庫(kù)
# 保持?jǐn)?shù)據(jù)庫(kù)運(yùn)行
mkdir /data/logs
mkdir /data/logs/mongodb
mkdir /data/logs/mongodb/logs
mongod --fork --logpath=/data/logs/mongodb/logs/mogondb.log
出現(xiàn)以下信息就ok
about to fork child process, waiting until server is ready for connections.
forked process: 5500
child process started successfully, parent exiting
3. 部署項(xiàng)目
- 下載項(xiàng)目
# 直接去github上git clone
git clone https://github.com/easy-mock/easy-mock.git
# 如果github連不上设哗,就直接下載下來(lái)放到某個(gè)文件夾下解壓
# 然后npm install唱捣,如果github連不上,就去已經(jīng)搭好的電腦拿node_module放過(guò)來(lái)再install
npm install
- 修改配置&build
cd /usr/share/easy-mock-dev
cp config/default.json config/local.json
vi config/local.json
db ==> mongodb://localhost:27017/easymockdb
jwt.secret ==> easy-mock-jwt-secret
APIPrefix ==> http://192.168.22.217:7300/api
改好了之后就跑起
sudo npm run build
sudo npm run dev
這時(shí)出現(xiàn)下面信息就是跑起來(lái)了
DONE Compiled successfully in 476ms
5. 調(diào)試
跑起來(lái)后訪問(wèn) http://192.168.22.217:7300/ 應(yīng)當(dāng)成功打開(kāi)界面
但是此時(shí)卻報(bào)錯(cuò)了
{"name":"easy-mock","hostname":"eles","pid":5546,"req_id":"5758ea3a-1a70-437a-ab4c-2f370f939bbd","level":50,"msg":"TypeError: Cannot read property 'data' of undefined\n at server-bundle.js:1782:16\n at process._tickCallback (internal/process/next_tick.js:109:7)","time":"2017-09-22T12:45:38.261Z","v":0}
(node:5546) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: connect ETIMEDOUT 193.168.22.217:7300
眼瞎瞎配置文件寫(xiě)錯(cuò)了ip地址网梢,去項(xiàng)目地址/config/local.json改過(guò)來(lái)即可
6. 持續(xù)運(yùn)行
使用PM2來(lái)保證項(xiàng)目的持續(xù)運(yùn)行
sudo npm i -g pm2
sudo sudo NODE_ENV=dev pm2 start app.js
出現(xiàn)下列內(nèi)容和表格則為運(yùn)行成功
[PM2] Starting /usr/share/easy-mock-dev/app.js in fork_mode (1 instance)
[PM2] Done.
App name | id | mode | pid | status | restart | uptime | cpu | mem | user | watching |
---|---|---|---|---|---|---|---|---|---|---|
app | 0 | fork | 8138 | online | 0 | 0s | 0% | 6.0MB | root | disabled |
感想
由于跟nodejs不是很熟震缭,所以出現(xiàn)錯(cuò)誤也知道怎么調(diào)試,并且定位問(wèn)題經(jīng)常沒(méi)有定位正確战虏,所以走了好多彎路拣宰,但還是想把整個(gè)過(guò)程寫(xiě)下來(lái)向大家分享,萬(wàn)一也有別的小傻瓜跟我一樣踩錯(cuò)坑了呢烦感?