服務(wù)器:阿里云服務(wù)器(Ubuntu系統(tǒng))骤菠,其它的系統(tǒng)沒試驗
本地:MAC 系統(tǒng)
項目:meteor 項目
概述:為了這個部署整整折磨了兩天兩夜辣苏,什么mup ,mupx成洗, meteorup 或者手動打包上傳等等暗膜,甚至于想過直接在服務(wù)器整個開發(fā)環(huán)境就當(dāng)部署,最終都沒有成功過著蛙,遇到各種各樣的問題∩玖澹現(xiàn)在神器出來了 pm2-meteor 耳贬,使得部署終于成功了踏堡。
分兩部分:
本地操作:?
1. 如果原來沒有裝過nodejs ,進(jìn)去這里https://nodejs.org/en/ 下載安裝你的版本就好了咒劲,這個安裝完后顷蟆,就同時擁有了node 和 npm, 利用node -v 和 npm -v腐魂,查看是否成功帐偎,顯示版本號就是成功了。如果沒顯示蛔屹,可能因為沒刷新削樊,另開一個命令窗口試試node -v 和 npm -v。
2. 安裝 pm2-meteor
npm i -g pm2-meteor
3. 新建一個部署目錄兔毒,進(jìn)入該目錄后運(yùn)行初始化
mkdir App_deployment
cd App_deployment
pm2-meteor init
這樣在目錄下就多出一個pm2-meteor.json文件出來漫贞,這個文件就是配置部署的,里面內(nèi)容要正確.
如果里面配置太多育叁,可以拷貝以下這些進(jìn)去迅脐,改成你的信息就可以了
{
"appName": "hi",
"appLocation": {
"local": "/Users/sosocom/Documents/Workspace/meteor/hi"
},
"meteorSettingsLocation": "",
"meteorSettingsInRepo": false,
"prebuildScript": "",
"meteorBuildFlags": "--architecture os.linux.x86_64",
"env": {
"ROOT_URL": "http://app.your.com",
"PORT": 3000,
"MONGO_URL": "mongodb://localhost:27017/hi"
},
"server": {
"host": "47.89.10.251",
"username": "root",
"password": "your password",
"deploymentDir": "/opt/pm2-meteor",
"exec_mode": "cluster_mode",
"instances": 1
}
}
開始部署
pm2-meteor deploy
這回可能會提示你的服務(wù)器端沒有安裝Nodejs, npm, PM2
這三個東西是需要服務(wù)器端自己手動配置好的。
下面就是如果在Ubuntu上安裝這三個東西
服務(wù)器端操作(安裝nodejs+pm2+pm2-meteor)
利用ssh 登錄你的服務(wù)器后豪嗽,開始以下工作
第一步: 刷新源谴蔑,這是預(yù)備工作
apt-get update
第二步:安裝curl (新服務(wù)器是沒有安裝這個的)
apt-get install curl
第三步:獲取資源,
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
第四步:安裝nodejs
sudo apt-get install -y nodejs
現(xiàn)在新版的nodejs集成了node和npm的了龟梦,利用node -v 和 npm -v隐锭,查看是否成功,顯示版本號就是成功了计贰。
安裝PM2?
npm i -g pm2
安裝pm2-meteor
npm i -g pm2-meteor
另外還要安裝mongodb
apt-get install mongodb
服務(wù)器端工作完成钦睡。
回到本地的命令行窗口中
在項目目錄中
pm2-metetor deploy
即可完成。如果中途提示要加一些后綴才能執(zhí)行蹦玫,則按提示添加
最后啟動項目
$ pm2-meteor start
常用的管理命令
$?pm2-meteor?start
$?pm2-meteor?stop
$?pm2-meteor?status
$?pm2-meteor?logs
刪除部署
執(zhí)行這個命令赎婚,需要在那個pm2-meteor.json文件中加入這個選項
'allowUndeploy': true
pm2-meteor undeploy
If something goes wrong: revert to previous version
恢復(fù)上一個發(fā)布的版本
有時候做新版本發(fā)布刘绣,去部署覆蓋了,又想回到上一個的挣输,就用這個命令:
pm2-meteor?revert
后續(xù):
如果你要對外公布多個app, 并且都對端口進(jìn)行處理纬凤,不顯示端口差異,統(tǒng)一顯示80的
那就要在服務(wù)器安裝nginx,
apt-get install nginx
進(jìn)入目錄修改配置
cd /etc/nginx
修改這個文件
nano nginx.conf
在http的大括號{}內(nèi)增加以下內(nèi)容
server {
? ? listen? ? *:80;
? ? server_name app.你的域名.com;
? ? location / {
? ? ? ? proxy_pass http://你的服務(wù)器IP:3000;
? ? }
}
ctrol+x 退出撩嚼,輸入y 按回車保存
重啟nginx?
service nginx restart
去瀏覽器訪問以下停士,不帶端口號也可以訪問了