2013-02-14 119 views
0

我想知道,如果我將一個Meteor應用程序部署到虛擬機,爲什麼我不能直接在虛擬機上安裝流星,並使用流星運行命令運行我的應用程序?文檔的部署部分說創建一個tarball捆綁包並將其部署到具有Node和MongoDB的服務器,但是我不能只在服務器上安裝Meteor?然後設置我的DNS條目來聽3000端口...爲什麼這個想法不起作用?流星通過安裝流星部署到虛擬機

回答

3

你的想法可以正常工作。但是,我只是建議如果你打算使用這個,你可能會在更「生產」的環境中運行。而且安裝起來非常簡單。

在高水平這裏是你需要什麼:

  1. 需要安裝節點0.8.4
  2. 需要安裝MongoDB的
  3. 按照指示here部署。這些只是更新流星0.5.5,所以才知道這一點。
  4. 需要永遠安裝Node.js的包

爲了使我的生活更輕鬆,我創建一個腳本來處理啓動/停止我的流星應用程序。它會設置一切使用完整的MongoDB:

#!/bin/bash 

SUCCESS=0 
FAILURE=1 

if [ $# -ne 1 ] 
then 
    echo "Usage: start|stop|restart" 
    exit $FAILURE 
fi 

case "$1" in 
    start) 
     export MONGO_URL=mongodb://localhost:27017/<name of the database> 
     export PORT=3000 
     export ROOT_URL=http://yourhostname.com:3000 
     forever start bundle/main.js 
     ;; 

    stop) 
     forever stop bundle/main.js 
     ;; 

    restart) 
     forever restart bundle/main.js 
     ;; 

esac 
+0

我想我的問題是,做這一切,與只在流星上安裝流星之間有什麼區別服務器?按照您在此處描述的方式進行操作有什麼優勢? – 2013-02-14 14:48:25

+0

只運行流星更像是一種發展模式。一切都可以幫助您快速啓動並快速開發。我不確定Meteor是否在服務器端運行了一個完整的MongoDB,這可能是其中一個原因。此外,如果您想要更好地控制MongoDB服務器或將其擴展出來,那麼在獨立的MongoDB上就有詳細記錄。我不確定如果您想要更好地控制與Meteor一起運行的MongoDB,那麼您將能夠使用可用於獨立MongoDB的資源。 – shinank 2013-02-14 15:16:23

+0

簡而言之,如果你知道你永遠不會想要擴展你的應用程序,如果你不在乎瞭解更多關於node.js或MongoDB的信息,那麼只運行Meteor作爲你的生產服務器應該沒問題。如果你認爲你可能想擴展你的應用程序或者學習一些Meteor使用的其他工具,那麼你可能會咬緊牙關,並開始學習這些工具。 – shinank 2013-02-14 15:18:48

0

可能在定期安裝的Meteor上的VM中運行您的部署。

認爲它就像運行內置開發服務器的rails應用程序一樣。 就流星而言,捆綁版本應該與開發版本沒有區別。您創建的軟件包確保所有必需的依賴關係都與它捆綁在一起。

the meteor docs約流星束引述:

該命令將產生在一個壓縮包的形式的完全包含的Node.js的應用程序。要運行此應用程序,您需要提供Node.js 0.8和一個MongoDB服務器。然後,您可以通過調用節點來運行應用程序,指定要偵聽的應用程序的HTTP端口以及MongoDB端點。如果你還沒有MongoDB服務器,我們可以推薦MongoHQ的朋友。

$ PORT = 3000 MONGO_URL = mongodb的://本地主機:27017/MyApp的節點束/ main.js

其他軟件包可能需要其他環境變量(例如,電子郵件包需要MAIL_URL環境變量)。

嗯,我從來沒有將底層數據庫更改爲專用的MongoDB服務器與開發版本,但我認爲應該可以通過設置提到的環境變量。

PS:

您寫道:

然後設置我的DNS條目偵聽端口3000 ...

你也很難設置與端口一個DNS條目...

+0

所以,你說沒有理由不安裝我的虛擬機安裝流星?你發佈的文檔部分是爲什麼我認爲流星團隊說我們不應該通過安裝流星來設置我們的服務器... – 2013-02-14 14:06:18