Meteor部署在CentOS環(huán)境下

在Meteor開發(fā)者群里發(fā)現(xiàn)很多人在問如何部署Meteor項目芽狗,我自己也在部署Meteor項目時遇到了很多問題蹦渣,所以在這整理一下Meteor部署的方法梁棠,雖然主要是針對CentOS系統(tǒng)稚叹,但里面涉及的一些問題和解決方法也適合于其他平臺惜论。

文章分為兩部分捧弃,一部分說明部署的流程赠叼,二部分是介紹一個工具擦囊,一鍵部署。

第一部分嘴办,Meteor項目部署的步驟和坑點


首先說一下Meteor項目部署的步驟流程和一些細節(jié)點瞬场,這部分內(nèi)容適合在任何平臺上部署的情況。

1涧郊,項目打包

meteor build ../production --architecture os.linux.x86_64

這里 --architecture 參數(shù)非常重要贯被,這個是指定你部署服務器的運行環(huán)境,打包的過程會根據(jù)這個環(huán)境來編碼和打包源代碼妆艘。

../production 代表打包好的包文件在../production 這個目錄里彤灶,這個地址你可以任意指定。

2批旺,將發(fā)布包上傳到服務器

cd ../production

scp ?my-project.tar.gz ?root@192.168.0.100:/opt/www/

上傳到服務器可以用任何合適的方法幌陕,我為了演示簡便就使用scp的方式。

3汽煮,解壓發(fā)布包

ssh root@192.168.0.100

cd /opt/www/

tar zxvf my-project.tar.gz

注意:這部分內(nèi)容是在服務器上操作的

找到這個發(fā)布包搏熄,解壓發(fā)布包

4,配置安裝項目所需要的插件包

cd bundle/programs/server

npm install

my-project.tar.gz文件會解壓出一個bundle目錄逗物,而bundle/programs/server目錄就是項目server代碼所在的目錄搬卒。

所以進入這個目錄,運行npm install翎卓,npm會自動安裝所需的插件契邀、組件。

5失暴,運行meteor

cd ../../

node main.js

或者

export ROOT_URL=http://www.xxx.com?

node main.js

雖然服務器代碼在 bundle/programs/server 目錄里坯门,但入口文件在 bundle 目錄下,所以退出來到 bundle逗扒,然后運行node main.js 啟動服務古戴。

在啟動之前可以通過 export ROOT_URL=http://www.xxx.com 方式設置一些環(huán)境變量來配置meteor項目的運行。

6矩肩,服務器環(huán)境搭建和配置

如果在第五步發(fā)現(xiàn)你無法運行或者報錯了现恼,有可能是你沒有安裝nodejs,也有可能是你的nodejs版本不對黍檩。

meteor 1.3.2 所需要的 nodejs 版本是0.10.43叉袍,過高的nodejs版本也會導致meteor項目部署運行報錯。

在這說一下nodejs的版本號的問題刽酱,不要看0.10.43版本號好像很小喳逛,懷疑它不是穩(wěn)定的版本,之所以nodejs現(xiàn)在最大的版本號會有6.2.0這種很大的編號棵里,是因為之前nodejs的開發(fā)團隊分裂過润文,現(xiàn)在有合并在一起了姐呐,所以導致版本號比較混亂。6.2.0如果以之前的版本號演進的話大概也就是0.16.0典蝌。

不管你是否安裝過nodejs或者版本不對曙砂,都先安裝nvm,鑒于nodejs這么混亂的版本號所以需要一個nvm這樣的工具來管理不同的nodejs版本骏掀。

安裝nvm

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash

安裝和使用 nodejs 0.10.43

nvm install 0.10.43

nvm use 0.10.43

通過這一系列的操作麦轰,你基本部署完成你的項目了,但每次開發(fā)一個新版本就要這樣部署一下有些麻煩砖织,所以就有人寫了一些部署meteor項目的工具。

第二部分末荐,一鍵部署工具介紹和使用


其中官方推薦的是mup侧纯,mup是將meteor項目部署到服務器主機上。mup還有一個版本mupx甲脏,可以將meteor項目部署到docker容器上眶熬。

但mup和mupx都只支持ubuntu/debian架構的服務器,而且在國內(nèi)的網(wǎng)絡環(huán)境下運行非常慢块请,因為它們都沒有針對國內(nèi)的網(wǎng)絡環(huán)境優(yōu)化npm pacakge服務器娜氏。

所以我在mupx的基礎將服務器代碼移植到CentOS平臺上,項目地址在這?mup for centos墩新,如果需要在CentOS上部署贸弥,可以到這里去下載使用。github的項目首頁有詳細的使用說明海渊。在這里我簡單的講一下如何使用mup for centos一鍵部署Meteor項目到服務器绵疲。

1,下載臣疑、安裝mup for centos

cd /usr/local

git clone https://github.com/romejiang/mupx.git

ln -s mupx/bin/mup bin/mup

mup

進入/usr/local/目錄盔憨,一般的第三方工具都安裝在這。

git下載工具源碼讯沈,ln連接mup命令

然后執(zhí)行 mup 命令郁岩,如果有顯示幫助信息就說明安裝完成了。

2缺狠,建立項目部署目錄

cd ~/projects/myproject

mkdir .deploy

cd .deploy

mup init

進入你的meteor項目所在的目錄问慎,建立一個隱藏目錄 .deploy,并進入目錄儒老,在目錄里初始化部署腳本蝴乔。

3,編輯部署腳本 mup.json

{

? "servers": [

? {

? "host": "jcw", // 部署服務器的地址 ip 或者 域名

"username": "root", ?// 服務器用戶名

// "password": "password", // 服務器密碼

"pem": "~/.ssh/id_rsa", // 可以用ssh驗證驮樊,就不需要配置密碼了

"env": {} // 服務器需要的環(huán)境變量

}

],

"appName": "zhiq", // 項目的名稱薇正,這個很重要片酝,如果是多個項目部署到一個服務器上,這個名字不能重復挖腰,否則會覆蓋其他項目

"app": "/Users/rome/Projects/meteor/zhiq", // meteor項目在你本地的目錄地址

"env": {

"PORT": 8181, // 端口雕沿,多個項目部署到同一個服務器,也需要修改為不同的端口

"ROOT_URL": "http://app.yijianapp.com/test" // 項目真實的訪問地址

},

"dockerImage": "romejiang/meteor:v53" // 使用的 Docker 鏡像

}

部署腳本里有很多參數(shù)猴仑,但上面這幾個是你會用到的审轮,其他的參數(shù)可以不用動,默認值就好辽俗。

4疾渣,初始化服務器環(huán)境

mup setup

mup會根據(jù)需要對服務器的配置部署環(huán)境,會自動安裝docker崖飘,mongodb榴捡,更新一些包。

5朱浴,部署項目

mup deploy

部署項目吊圾,項目會部署到服務器的/opt/目錄下。

6翰蠢,再次部署

mup deploy

一次每次更新了代碼再次部署是只需要運行 项乒, mup deploy 即可。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末梁沧,一起剝皮案震驚了整個濱河市檀何,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌廷支,老刑警劉巖埃碱,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異酥泞,居然都是意外死亡砚殿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門芝囤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來似炎,“玉大人,你說我怎么就攤上這事悯姊∠勖辏” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵悯许,是天一觀的道長仆嗦。 經(jīng)常有香客問我,道長先壕,這世上最難降的妖魔是什么瘩扼? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任谆甜,我火速辦了婚禮,結果婚禮上集绰,老公的妹妹穿的比我還像新娘规辱。我一直安慰自己,他們只是感情好栽燕,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布罕袋。 她就那樣靜靜地躺著,像睡著了一般碍岔。 火紅的嫁衣襯著肌膚如雪浴讯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天蔼啦,我揣著相機與錄音兰珍,去河邊找鬼。 笑死询吴,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的亮元。 我是一名探鬼主播猛计,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼爆捞!你這毒婦竟也來了奉瘤?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤煮甥,失蹤者是張志新(化名)和其女友劉穎盗温,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體成肘,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡卖局,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了双霍。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片砚偶。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖洒闸,靈堂內(nèi)的尸體忽然破棺而出染坯,到底是詐尸還是另有隱情,我是刑警寧澤丘逸,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布单鹿,位于F島的核電站,受9級特大地震影響深纲,放射性物質(zhì)發(fā)生泄漏仲锄。R本人自食惡果不足惜劲妙,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望昼窗。 院中可真熱鬧是趴,春花似錦、人聲如沸澄惊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掸驱。三九已至肛搬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間毕贼,已是汗流浹背温赔。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鬼癣,地道東北人陶贼。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像待秃,于是被迫代替她去往敵國和親拜秧。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

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

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理章郁,服務發(fā)現(xiàn)枉氮,斷路器,智...
    卡卡羅2017閱讀 134,659評論 18 139
  • 最近有個項目要做上線暖庄,以前是基于mupx進行部署的聊替。但是官方推薦1.4.x以后,使用另外一個部署方式kadirah...
    TL教官閱讀 2,799評論 6 12
  • 1培廓、什么是node惹悄? 它不是JS文件,也不是JS框架肩钠,而是Server side JavaScript runti...
    J_L_L閱讀 1,582評論 0 4
  • Meteor是一個基于Nodejs+Websocket+MongoDB的Web應用程序開發(fā)平臺俘侠。Metror的七個...
    IT小C閱讀 5,579評論 2 9
  • 當我還年輕,比現(xiàn)在年輕很多的時候 我從來不需要任何人的任何幫助 但是現(xiàn)在我的生活發(fā)生了如此多的改變 我的獨立似乎已...
    蜉蝣小姐閱讀 381評論 1 2