一. 安裝配置Node.js
-
Node.js官網(wǎng)上 http://nodejs.cn/download/ 下載安裝包或者源代碼
通過(guò)xshell登錄Linux服務(wù)器將安裝包上傳到指定的安裝目錄,最好事先規(guī)劃安裝目錄
#事先創(chuàng)建好 mongodb低零,node,project項(xiàng)目 這些文件夾
[root@hadoop214 ~]# ls
anaconda-ks.cfg install.log install.log.syslog
[root@hadoop214 ~]# cd /home
[root@hadoop214 home]# ls
mongodb node project rar
[root@hadoop214 home]#
通過(guò)xshell上傳文件(上傳文件使用rz與sz命令,遠(yuǎn)程Linux系統(tǒng)上需要安裝lrzsz工具包)
[root@hadoop214 ~]# yum install lrzsz
#進(jìn)入node文件夾
[root@hadoop214 ~]# cd /home/node
#上傳
[root@hadoop214 node]# rz
#此時(shí)會(huì)彈出一個(gè)Windows的對(duì)話框刃唐,選擇要上傳的文件
#注意文件不能為空文件墩剖,也就是大小為0字節(jié)的文件咐低,文件為空文件是不行的,會(huì)一直處于上傳的狀態(tài)
- 解壓node安裝包
[root@hadoop214 node]# tar -zxvf node-v6.2.0-linux-x64.tar
#分別是四個(gè)參數(shù)
x : 從 tar 包中把文件提取出來(lái)
z : 表示 tar 包是被 gzip 壓縮過(guò)的悉抵,所以解壓時(shí)需要用 gunzip 解壓
v : 顯示詳細(xì)信息
f xxx.[tar.gz] 指定被處理的文件是 xxx.[tar.gz]
進(jìn)入解壓后的目錄node-v6.2.0-linux-x64/bin目錄下
[root@hadoop214 node]# cd node-v6.2.0-linux-x64/bin/
#現(xiàn)在可以顯示node版本號(hào)
[root@hadoop214 bin]# ./node -v
v6.2.0
#但無(wú)法顯示npm的版本號(hào)
[root@hadoop214 node]# ./npm -v
- 簡(jiǎn)單配置
至此肩狂,Node.js安裝成功,但是每次必須要到/home/nodenode-v6.2.0-linux-x64/bin目錄下才能執(zhí)行node命令姥饰,為node及npm建立軟連接傻谁,即可在任意目錄下執(zhí)行node及npm
[root@hadoop214 node]# ln -s node /usr/bin/node
[root@hadoop214 node]# ln -s npm /usr/bin/npm
#現(xiàn)在可以在任意目錄執(zhí)行node和npm
[root@hadoop214 ~]# node -v
[root@hadoop214 ~]# npm -v
如果軟連接失敗,也可通過(guò)配置環(huán)境變量實(shí)現(xiàn)
#安裝nano
[root@hadoop214 ~]# yum install nano
#編輯~/.bashrc
[root@hadoop214 ~]# nano ~/.bashrc
#再最后加入:
export PATH=/home/node/node-v6.2.0-linux-x64/bin:$PATH
#每次修改.bashrc后列粪,使用source ~/.bashrc 是修改立即生效
#保存退出后就能顯示 npm版本了
[root@hadoop214 ~]# npm -v
3.8.9
[root@hadoop214 ~]# node -v
v6.2.0
二. 安裝配置MongoDB
-
MongoDB官網(wǎng)下載安裝包(CentOS選擇RHEL栅螟,最好選擇偶數(shù)項(xiàng),最新版不是最好的)
- 和node一樣進(jìn)行上傳解壓篱竭,將名字 mongodb-linux-x86_64-rhel62-3.4.0 改為 mongodb
[root@hadoop214 mongodb]# mv mongodb-linux-x86_64-rhel62-3.4.0 mongodb
然后為mongodb創(chuàng)建數(shù)據(jù)庫(kù)存放的位置和日志文件,默認(rèn)是在/data/db下面,同樣為了方便就在mongodb下面建立了相應(yīng)的目錄
[root@hadoop214 mongodb]# mkdir data
[root@hadoop214 mongodb]# cd data
# 以后將數(shù)據(jù)庫(kù)存放在db里
[root@hadoop214 data]# mkdir db
# 新建日志文件log
[root@hadoop214 mongodb]# mkdir log
# 創(chuàng)建一個(gè)日志文件
[root@hadoop214 mongodb]# touch logs
- 啟動(dòng)Mongodb數(shù)據(jù)庫(kù)
# 進(jìn)入mongodb下的bin文件
[root@hadoop214 mongodb]# cd bin
# 配置路徑
[root@hadoop214 bin]# ./mongod --dbpath=/home/mongodb/mongodb/data/db --fork --logpath=/home/mongodb/mongodb/log/logs
# 參數(shù)說(shuō)明:
--dbpath:用于指定存放mongodb的數(shù)據(jù)庫(kù)
--fork:后臺(tái)執(zhí)行力图,不然是前臺(tái)執(zhí)行,fork參數(shù)使得退出mongodb路徑還能運(yùn)行
--logpath:用于指定存放mongodb的日志記錄文件
- 打開(kāi)rc.local文件掺逼,添加CentOS開(kāi)機(jī)啟動(dòng)項(xiàng)
nano /etc/rc.d/rc.local
# 添加啟動(dòng)命令到本文件中
/home/mongodb/mongodb/bin/mongod --dbpath=/home/mongodb/mongodb/data/db --fork --logpath=/home/mongodb/mongodb/log/logs
執(zhí)行了第三步后mongodb已經(jīng)在后臺(tái)運(yùn)行了
三. 部署Node.js項(xiàng)目
- 安裝rar吃媒,官方網(wǎng)站下載最新版 http://linux.softpedia.com/get/System/Archiving/RAR-2380.shtml#download
rar軟件不需要安裝,直接解壓到/usr/local下,以下操作需要有root權(quán)限赘那。
#tar zxvf rarlinux-3.8.0.tar.gz -C /usr/local
此時(shí)刑桑,/usr/local/rar下就會(huì)有rar命令和unrar命令∧贾郏可以在/usr/local/bin下創(chuàng)建連接
#ln -s /usr/local/rar/rar /usr/local/bin/rar
#ln -s /usr/local/rar/unrar /usr/local/bin/unrar
- 利用 xshell 將項(xiàng)目上傳到指定項(xiàng)目文件夾
[root@hadoop214 ~]# cd /home/project/ChatRooom
[root@hadoop214 bin]# rz
[root@hadoop214 bin]# unrar x ChatRoom.rar
- 安裝npm包及運(yùn)行
# 進(jìn)入項(xiàng)目
[root@hadoop214 ~]# /home/project/ChatRoom/
# 設(shè)置 npm 的淘寶鏡像
[root@hadoop214 ChatRoom]# npm config set registry https://registry.npm.taobao.org
# 如果node項(xiàng)目下的package.json里面的包依賴關(guān)系都寫(xiě)進(jìn)去了,則npm install就會(huì)自動(dòng)下載需要的包
[root@hadoop214 ChatRoom]# npm install
# 有些包還需要手動(dòng)添加祠斧,例如express-handlebars,moment等等拱礁,根據(jù)提示添加即可
[root@hadoop214 ChatRoom]# npm install express-handlebars
#運(yùn)行nodejs項(xiàng)目
[root@hadoop214 ChatRoom]# node bin/www &
這些包都存放在 node_modules 文件夾內(nèi)
四. 利用 nodejs pm2
pm2是一個(gè)帶有負(fù)載均衡功能的應(yīng)用進(jìn)程管理器琢锋,類似有Supervisor,forever呢灶。
- 安裝
# npm install -g pm2
- 啟動(dòng)
# pm2 start bin/www
# pm2 start bin/www --name my-api #my-api為PM2進(jìn)程名稱
# pm2 start bin/www -i 0 #根據(jù)CPU核數(shù)啟動(dòng)進(jìn)程個(gè)數(shù)
# pm2 start bin/www --watch #實(shí)時(shí)監(jiān)控bin/www的方式啟動(dòng)吴超,當(dāng)bin/www文件有變動(dòng)時(shí),pm2會(huì)自動(dòng)reload
- 查看進(jìn)程
# pm2 list
# pm2 show 0 或者 # pm2 info 0 #查看進(jìn)程詳細(xì)信息鸯乃,0為PM2進(jìn)程id
- 監(jiān)控
# pm2 monit
- 停止
# pm2 stop all #停止PM2列表中所有的進(jìn)程
# pm2 stop 0 #停止PM2列表中進(jìn)程為0的進(jìn)程
- 重載
# pm2 reload all #重載PM2列表中所有的進(jìn)程
# pm2 reload 0 #重載PM2列表中進(jìn)程為0的進(jìn)程
- 重啟
# pm2 restart all #重啟PM2列表中所有的進(jìn)程
# pm2 restart 0 #重啟PM2列表中進(jìn)程為0的進(jìn)程
- 刪除PM2進(jìn)程
# pm2 delete 0 #刪除PM2列表中進(jìn)程為0的進(jìn)程
# pm2 delete all #刪除PM2列表中所有的進(jìn)程
- 日志操作
# pm2 logs [--raw] #Display all processes logs in streaming
# pm2 flush #Empty all log file
# pm2 reloadLogs #Reload all logs
- 升級(jí)PM2
# npm install pm2@lastest -g #安裝最新的PM2版本
# pm2 updatePM2 #升級(jí)pm2
- 更多命令參數(shù)請(qǐng)查看幫助
# pm2--help