在Webfaction上安装Meteor

时间:2013-10-29 09:57:12

标签: mongodb meteor webfaction

我遇到问题在Webfaction上安装Meteor并设置网站和应用程序,因为我看不清楚如何实现这一点,Webfaction支持也没有提供详细的支持。

第一期:

如何在没有root权限的情况下在Webfaction上安装Meteor作为共享主机?

第二期:

如何设置应用程序并配置端口并在后台运行应用服务器。

第3期: 我是否需要设置MongoDB,因为Meteor拥有自己的MongoDB版本?

4 个答案:

答案 0 :(得分:4)

经过一番努力,我成功地在Webfaction上部署了Meteor 0.6.6.3应用程序,这就是这个过程。

基本上你需要使用Demteorizer将Meteor应用程序转换为Node.js应用程序才能运行,你需要在webfaction服务器或数据库托管服务(如{{}上设置MongoDB实例。 3}} / MongoHQ,在这种情况下不能使用Meteor自己的MongoDB。

在Webfaction服务器上安装这些东西:

  1. MongoLabNode.js
  2. npm(使用npm)
  3. Forever
  4. 部署应用:

    1. 在Webfaction管理控制台中添加两个自定义应用程序,一个用于MongoDB,另一个用于您的应用程序,节点位于应用程序正在侦听的两个端口上。我们称之为MONGO_PORT和APP_PORT。您还需要拥有一个域并将自定义应用程序附加到该域的网站。

    2. 在本地安装MongoDB并按照其说明将您的应用程序转换为Node.js,然后将转换后的应用程序上传到webfaction服务器。您可以使用ftp或设置git存储库来简化上传过程。

    3. 在Webfaction上启动MongoDB实例,在ssh shell上使用此命令以守护进程模式运行它:

      mongod --fork --logpath ~/tmp/mongodb.log --dbpath ~/.data/db --port [MONGO_PORT]
      
    4. 根据Demeteorizer说明设置环境变量,根据我的经验,应用程序在Webfaction上正常运行需要三个:

      export MONGO_URL="mongodb://localhost:[MONGO_PORT]/[DB_NAME]?autoReconnect=true"
      export PORT="[APP_PORT]"
      export ROOT_URL="http://[YOUR_DOMAIN]"
      
    5. 导航到webfaction上的应用文件夹,并永远使用它在后台运行:

      forever start main.js
      
    6. 完成后,该应用应该正在运行。

答案 1 :(得分:1)

这是一篇很老的帖子,但由于我最近一直在研究如何让自己从头到尾工作,我觉得值得分享...... 以下github gist是一个python脚本,应该是不言自明的:

https://gist.github.com/mogga/1d038a31e5d998bbcf37

如果您可以改进,请提交拉取请求。

答案 2 :(得分:1)

我知道这是一个古老的问题,但这是我努力奋斗的事情,这也是我想要做出贡献的原因。以下是我将 Meteor 1.3应用程序部署到WebFaction共享托管服务时遵循的步骤。你应该熟悉命令行和ssh之类的东西。但如果你是流星开发者,我想这不是问题。

TL; DR:如果您正在寻找一个耗时较少的选项,我创建了一个遵循以下步骤的npm包:meteorfaction

  1. 获取MongoDB网址。我使用并推荐mlab.com。 注意。如果你使用mlab,它应该是mongodb://user:password@ds123456.mlab.com:11122/something

  2. Webfaction Panel上创建一个节点0.10.43应用。我选择此版本的原因是因为Meteor文档声明这是已部署应用程序的最新兼容版本。 记下此应用的端口号。它应与面板中的应用信息一起显示。别忘了为该应用创建一个网站。

  3. 在本地计算机的app app文件夹中,运行以下命令:meteor build ./build --architecture os.linux.x86_64。此步骤应在 build 文件夹中创建 app_name.tar.gz 文件

  4. 将此.tar.gz文件上传到您的webfaction app文件夹。您可以使用FTP执行此操作,也可以在本地应用程序文件夹中运行以下命令:scp build/app_name.tar.gz webfaction_user@webXXX.webfaction.com:/home/webfaction_username/webapps/app_name/app_name.tar.gz

  5. Obs:webXXX.webfaction.com是您的webfaction服务器地址。令人惊讶的是,webfaction_username是主要的webfaction用户名。

    1. 提取您刚刚上传的.tar.gz文件。对于此步骤,您需要SSH访问权限。运行以下命令:ssh webfaction_user@webXXX.webfaction.com。然后运行cd webapps/app_name转到您的app目录。到达那里后,您可以通过运行ls来检查.tar.gz文件是否存在。如果一切正常,请运行tar -zxvf app_name.tar.gz

    2. 步骤5将在您的webfaction app目录中创建捆绑文件夹。这是您的Meteor应用程序的位置。运行以下命令:cd bundle/programs/server然后npm install。这将安装应用程序依赖项。

    3. 返回您的Webfaction应用文件夹。我们将使用export命令向环境添加一些变量。运行:export MONGO_URL=mongodb://user:password@ds123456.mlab.com:11122/something。然后是export ROOT_URL=yourwebsite.com,最后是export PORT=PORT_NUM

    4. Obs:MONGO_URL是您从mlab或您选择的任何服务获得的URL(步骤1)。 ROOT_URL只是您的网站地址。 PORT是您的webfaction应用程序的端口号(步骤2)

      1. 运行cd bin,然后vim start。您刚刚打开了 start 文件进行编辑。请查找以下内容:nohup /home/webfaction_user/webapps/app_name/bin/node /home/webfaction_user/webapps/app_name/hello-world.js。使用箭头将光标发送到该行,然后按键盘上的 i 键开始编辑。只需将hello-world.js更改为bundle/main.js,然后按 Esc 即可。最后,输入:wq 并按 Enter 保存并退出。

      2. 现在,仍然在该目录上,运行以下命令:./stop然后./start

      3. 如果一切正常,您应该可以看到您的应用正在运行。如果您看到 502 Bad Gateway ,请转到webfaction上的app文件夹并运行node bundle/main.js。这应该会给你一些错误的提示。

答案 3 :(得分:0)

我使用了Brunno的答案,但Meteor 1.4的一些细微变化让它运行起来:

  • 创建了一个Node.js 6.10.3 app而不是Node 0.10.43
  • running npm install我跑完后:meteor npm install --save bcrypt
  • export步骤中
  • 使用ROOT_URL上的完整网址,例如:ROOT_URL="http://hostname.domain"