Linux部署Nodejs項(xiàng)目

一. 安裝配置Node.js

  1. Node.js官網(wǎng)上 http://nodejs.cn/download/ 下載安裝包或者源代碼

    下載node

  2. 通過(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)
  1. 解壓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
  1. 簡(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

  1. MongoDB官網(wǎng)下載安裝包(CentOS選擇RHEL栅螟,最好選擇偶數(shù)項(xiàng),最新版不是最好的)


    MongoDB下載
  2. 和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
  1. 啟動(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的日志記錄文件
  1. 打開(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)目

  1. 安裝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
  1. 利用 xshell 將項(xiàng)目上傳到指定項(xiàng)目文件夾
[root@hadoop214 ~]# cd /home/project/ChatRooom
[root@hadoop214 bin]# rz
[root@hadoop214 bin]# unrar x ChatRoom.rar
  1. 安裝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呢灶。

  1. 安裝
# npm install -g pm2
  1. 啟動(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
  1. 查看進(jìn)程
# pm2 list
# pm2 show 0 或者 # pm2 info 0  #查看進(jìn)程詳細(xì)信息鸯乃,0為PM2進(jìn)程id
  1. 監(jiān)控
# pm2 monit
  1. 停止
# pm2 stop all  #停止PM2列表中所有的進(jìn)程
# pm2 stop 0    #停止PM2列表中進(jìn)程為0的進(jìn)程
  1. 重載
# pm2 reload all    #重載PM2列表中所有的進(jìn)程
# pm2 reload 0     #重載PM2列表中進(jìn)程為0的進(jìn)程
  1. 重啟
# pm2 restart all     #重啟PM2列表中所有的進(jìn)程
# pm2 restart 0      #重啟PM2列表中進(jìn)程為0的進(jìn)程
  1. 刪除PM2進(jìn)程
# pm2 delete 0     #刪除PM2列表中進(jìn)程為0的進(jìn)程
# pm2 delete all   #刪除PM2列表中所有的進(jìn)程
  1. 日志操作
# pm2 logs [--raw]   #Display all processes logs in streaming
# pm2 flush              #Empty all log file
# pm2 reloadLogs    #Reload all logs
  1. 升級(jí)PM2
# npm install pm2@lastest -g   #安裝最新的PM2版本
# pm2 updatePM2                    #升級(jí)pm2
  1. 更多命令參數(shù)請(qǐng)查看幫助
# pm2--help
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鲸阻,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子缨睡,更是在濱河造成了極大的恐慌鸟悴,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奖年,死亡現(xiàn)場(chǎng)離奇詭異细诸,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)拾并,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén)揍堰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)鹏浅,“玉大人嗅义,你說(shuō)我怎么就攤上這事∫遥” “怎么了之碗?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)季希。 經(jīng)常有香客問(wèn)我褪那,道長(zhǎng),這世上最難降的妖魔是什么式塌? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任博敬,我火速辦了婚禮,結(jié)果婚禮上峰尝,老公的妹妹穿的比我還像新娘偏窝。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布祭往。 她就那樣靜靜地躺著伦意,像睡著了一般。 火紅的嫁衣襯著肌膚如雪硼补。 梳的紋絲不亂的頭發(fā)上驮肉,一...
    開(kāi)封第一講書(shū)人閱讀 49,166評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音已骇,去河邊找鬼离钝。 笑死,一個(gè)胖子當(dāng)著我的面吹牛疾捍,可吹牛的內(nèi)容都是我干的奈辰。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼乱豆,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼奖恰!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起宛裕,我...
    開(kāi)封第一講書(shū)人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瑟啃,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后揩尸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蛹屿,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年岩榆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了错负。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡勇边,死狀恐怖犹撒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情粒褒,我是刑警寧澤识颊,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站奕坟,受9級(jí)特大地震影響祥款,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜月杉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一刃跛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧苛萎,春花似錦桨昙、人聲如沸跌帐。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)谨敛。三九已至,卻和暖如春滤否,著一層夾襖步出監(jiān)牢的瞬間脸狸,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工藐俺, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留炊甲,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓欲芹,卻偏偏與公主長(zhǎng)得像卿啡,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子菱父,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容