Meteor 部署到阿里云ubuntu 成功寨闹,可訪問案例

使用該方式需要有基本的 Linux 知識
這里介紹的部署方法都是手動氛谜,可以幫助理解 Meteor App 在生產(chǎn)環(huán)境下是如何運行的


本次記錄為全新服務(wù)器安裝流程? 教程來原參見 ?部署 Meteor 應(yīng)用到墻內(nèi)服務(wù)器

國內(nèi)Meteor學(xué)習(xí)的資料和使用的人太少了,有興趣添加一起學(xué)習(xí)

服務(wù)器端操作

使用 Ubuntu 14.04 64bit LTS 版本酝惧,root 用戶就可以了榴鼎。新開一臺 VPS 后使用下面的命令更新一下 Ubuntu 的包列表, 這樣 Ubuntu 知道到哪里去下載最新的軟件包。

服務(wù)器工具安裝


通過Xshell遠(yuǎn)程登陸命令行:

1:apt-get update? ? ? ? //升級包列表
2:apt-get install curl? //安裝 curl
3:apt-get install git? ? //安裝 git
4:aapt-get install vim ?//安裝vim編輯器


安裝 Node.js 4

重點:安裝node.js 4.x 由于meteor 1.4 不支持4.x以上版本晚唇,所以使用4.x版本的node.js
檢查meteor內(nèi)置使用版本巫财,在開發(fā)環(huán)境,即本地電腦使用: meteor node -v 可檢查meteor 使用的版本

4:curl -sL https://deb.nodesource.com/setup_4.x| sudo -E bash - ? //執(zhí)行下面的解決方法后再操作第4步
5:apt-get install -y nodejs


問題來了:這里阿里云使用了自己的源缺亮,安裝了幾個小時仍然是 100% working...研究了半天翁涤,并咨詢官方后,解決方法在這里

我的解決方法如下:


打開服務(wù)器的文件 ?vim /etc/apt/apt.conf
Acquire::http::Proxy "http://mirrors.aliyun.com/"; ?注釋或刪除這句話萌踱,記得操作前備份文件


6:檢查node是否安裝成功? 執(zhí)行 node-v 查看到版本號即為成功安裝

安裝 MongoDB

安裝步驟

(注:可以登陸官網(wǎng)葵礼,按照官網(wǎng)給出的最新方法安裝)?


1、查看當(dāng)前Meteor推薦的mongo版本

meteor運行項目后并鸵,重新打開控制臺鸳粉,在項目下運行meteor mongo,會顯示當(dāng)前使用的mongo版本园担,我這邊現(xiàn)在看到的是3.2版本

2届谈、導(dǎo)入公鑰所使用的包管理系統(tǒng):

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

3、創(chuàng)建list文件

echo"deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse"|sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

4弯汰、重新加載本地包數(shù)據(jù)庫

sudo apt-get update

5艰山、安裝MongoDB?

sudo apt-get install -y mongodb-enterprise

6、啟動MongoDB

sudo service mongod start

數(shù)據(jù)庫位置在:/var/log/mongodb
日志文件在:/var/lib/mongodb

按照前面步驟完成 MongoDB 安裝后運行mongo測試是否安裝成功咏闪。如果遇到下面的錯誤

Failed global initialization: BadValue Invalidorno user locale set. Please ensure LANGand/orLC_* environment variables are set correctly.

需要設(shè)置如下語言環(huán)境

exportLC_ALL=C

然后再使用下面命令修改 mongod 的配置

nano /etc/mongod.conf

找到 "#replication" 的注釋處曙搬,改為如下內(nèi)容

replication:
replSetName:meteor

然后重啟 mongo

service mongod restart

重啟后,運行mongo進入 mongo shell鸽嫂,在 mongo shell 里鍵入

var config = {_id:"meteor",members[{_id:0,host:"127.0.0.1:27017"}]}

rs.initiate(config)

你應(yīng)該會看到返回

{"ok":1}

最后纵装,再次重啟mongo

service mongod restart

要確認(rèn) mongo 是否運行正常,可以進入 mongo shell据某,然后運行rs.status(), 如果正诚鹇Γ可以看到類似如下的返回

{
"set" : "meteor",

"date" : ISODate("2017-01-16T15:46:09.314Z"),

"myState" : 1,

"term" : NumberLong(1),

"heartbeatIntervalMillis" : NumberLong(2000),

"members" : [

{

"_id" : 0,

"name" : "127.0.0.1:27017",

"health" : 1,

"state" : 1,

"stateStr" : "PRIMARY",

"uptime" : 177,

"optime" : {

"ts" : Timestamp(1484581483, 1),

"t" : NumberLong(1)

},

"optimeDate" : ISODate("2017-01-16T15:44:43Z"),

"infoMessage" : "could not find member to sync from",

"electionTime" : Timestamp(1484581482, 2),

"electionDate" : ISODate("2017-01-16T15:44:42Z"),

"configVersion" : 1,

"self" : true

}],

"ok" : 1

}

數(shù)據(jù)庫安裝完成

安裝 pm2

這里沒有什么特別的,就是跟安裝其他 npm 包類似癣籽。我沒有使用淘寶的 cnpm挽唉,因為我發(fā)現(xiàn)直接使用 npm 也沒有太大問題,就是稍微慢點筷狼,但是還沒有到不可接受的地步橱夭。

npm install pm2 -g
pm2 startup

我后來發(fā)現(xiàn)這也要看機房,有的機房會很慢很慢桑逝,甚至安裝不了棘劣,比如阿里云最便宜的華北1 機房。但是青云的華南機房就沒有問題楞遏,原版的 npm 包安裝起來很快茬暇。

如果你的 npm 安裝有問題,可以使用cnpm寡喝,先安裝淘寶的 cnpm 包

npm install cnpm -g --registry=https://registry.npm.taobao.org

然后通過 cnpm 來安裝 pm2糙俗,安裝方式和 npm 幾乎一樣

cnpm install pm2 -g
pm2 startup

安裝后的使用方式和通過 npm 安裝的一樣。

代碼文件夾

創(chuàng)建存放 Meteor build 打包成 Node.js app 后的源代碼文件夾预鬓,我們后面會用到

mkdir /home/meteor
mkdir /home/meteor/build

到現(xiàn)在服務(wù)器端配置完畢

本地打包 Meteor App

假設(shè)你的 Meteor 源代碼在你的本地開發(fā)電腦上一個叫 meteor-build-test 的文件夾里巧骚,我們在它的同級目錄建立一個叫 build 的文件夾。然后運行

cd meteor-build-test
meteor build --architecture=os.linux.x86_64 ../build

上傳文件到服務(wù)器創(chuàng)建的meteor文件夾build

通過命令行直接上傳:meteor-build-test.tar.gzroot@your.server.ip.address:/home/meteor/build
也可以通過工具拷貝上傳

上面的命令就是把 Meteor app 打包成普通的 Node.js app,然后上傳到我們之前在服務(wù)器上創(chuàng)建的文件夾里劈彪。

運行

在服務(wù)器上進入 /home/meteor/build竣蹦,然后運行

tar zxvf meteor-build-test.tar.gz

解壓完成后,運行

cd bundle/programs/server && npm install

或者使用 cnpm沧奴,如果連接 npm 源有問題

cd bundle/programs/server && cnpm install

安裝打包完成后的 Node app 使用到的 npm 包痘括。安裝完成后回到 bundle 目錄,運行

nano pm2.json

再把

{

"apps":[{

"name":"mozibrand",

"cwd":"/home/meteor/build/bundle",

"script":"main.js",

"env":{

"NODE_ENV":"production",

"WORKER_ID":"0",

"PORT":"3000",

"ROOT_URL":"http://www.mozibrand.com",

"MONGO_URL":"mongodb://localhost:27017/meteor",

"MONGO_OPLOG_URL":"mongodb://localhost:27017/local",

"HTTP_FORWARDED_COUNT":"1",

"METEOR_SETTINGS":{}

}
}]
}

pm2 start pm2.json

拷貝過去滔吠,記得把 ROOT_URL 改為你用的地址纲菌。

最后運行pm2 start pm2.json命令, 你的 meteor 就運行在你的服務(wù)器上了。最后使
http://your.server.ip.address:3000訪問你的網(wǎng)站疮绷。當(dāng)然你也可以使用其 port翰舌,例如 80 端口。

使用80端口訪問

來源文章

端口映射的規(guī)則也只需輸入如下命令即可:

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000

MongoDB 3.2+ 安全授權(quán)登錄訪問控制

來源文章

1冬骚、添加授權(quán)用戶

use admin
db.createUser({user:"mongoadmin", pwd:"mongoadmin", roles: ["userAdminAnyDatabase","dbAdminAnyDatabase","readWriteAnyDatabase"]});

此時如果提示灶芝,如下所示代碼:

E QUERY? ? [thread1] Error: couldn't add user: No role named userAminAnyDatabase@admin :

執(zhí)行 db.auth 獲得數(shù)據(jù)庫操作權(quán)限

db.auth

再執(zhí)行 步驟1,添加授權(quán)用戶操作即可

2唉韭、啟動授權(quán)登錄

vim /etc/mongo.conf

在配置文件中增加

security:
? ?authorization:"enabled"

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末夜涕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子属愤,更是在濱河造成了極大的恐慌女器,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件住诸,死亡現(xiàn)場離奇詭異驾胆,居然都是意外死亡,警方通過查閱死者的電腦和手機贱呐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門丧诺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人奄薇,你說我怎么就攤上這事驳阎。” “怎么了馁蒂?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵呵晚,是天一觀的道長。 經(jīng)常有香客問我沫屡,道長饵隙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任沮脖,我火速辦了婚禮金矛,結(jié)果婚禮上芯急,老公的妹妹穿的比我還像新娘。我一直安慰自己驶俊,他們只是感情好娶耍,可當(dāng)我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著废睦,像睡著了一般伺绽。 火紅的嫁衣襯著肌膚如雪养泡。 梳的紋絲不亂的頭發(fā)上嗜湃,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天,我揣著相機與錄音澜掩,去河邊找鬼购披。 笑死,一個胖子當(dāng)著我的面吹牛肩榕,可吹牛的內(nèi)容都是我干的刚陡。 我是一名探鬼主播,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼株汉,長吁一口氣:“原來是場噩夢啊……” “哼筐乳!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起乔妈,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤蝙云,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后路召,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體勃刨,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年股淡,在試婚紗的時候發(fā)現(xiàn)自己被綠了身隐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡唯灵,死狀恐怖贾铝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情埠帕,我是刑警寧澤忌傻,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站搞监,受9級特大地震影響水孩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜琐驴,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一俘种、第九天 我趴在偏房一處隱蔽的房頂上張望秤标。 院中可真熱鬧,春花似錦宙刘、人聲如沸苍姜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽衙猪。三九已至,卻和暖如春布近,著一層夾襖步出監(jiān)牢的瞬間垫释,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工撑瞧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留棵譬,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓预伺,卻偏偏與公主長得像订咸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子酬诀,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,492評論 2 348

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