3

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

首要问题 :

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

第二期:

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

第三个问题:我需要设置 MongoDB,因为 Meteor 有它自己的 MongoDB 版本吗?

4

4 回答 4

4

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

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

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

  1. Node.jsnpm
  2. 永远(使用 npm)
  3. MongoDB

要部署应用程序:

  1. 在 Webfaction 管理控制台中添加两个客户应用程序,一个用于 MongoDB,一个用于您的应用程序,向下连接应用程序正在侦听的两个端口。我们称它们为 MONGO_PORT 和 APP_PORT。您还需要拥有一个域并将客户应用程序附加到该域的网站。

  2. 在本地安装Demeteorizer并按照其说明将您的应用程序转换为 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. 完成,应用程序应该正在运行。

于 2013-12-06T19:26:49.727 回答
1

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

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

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

于 2014-11-16T11:01:23.867 回答
1

我知道这是一个老问题,但这是我一直在努力解决的问题,这就是我想贡献的原因。因此,当我将Meteor 1.3 应用程序部署到 WebFaction 共享托管服务时,这是我遵循的步骤 。您应该熟悉命令行和 ssh 之类的东西。但如果你是 Meteor 开发者,我想这不是问题。

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

  1. 获取 MongoDB URL。我为此使用并推荐 mlab.com。请注意这一点。如果您使用 mlab,它应该类似于mongodb://user:password@ds123456.mlab.com:11122/something.

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

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

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

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

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

  2. 第 5 步将在您的 webfaction 应用程序目录中创建一个bundle文件夹。这是您的 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

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

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

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

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

于 2016-04-24T02:12:23.220 回答
0

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

  • 创建了一个 Node.js 6.10.3 应用而不是 Node 0.10.43
  • running npm install我跑了之后:meteor npm install --save bcrypt
  • export步骤上使用 ROOT_URL 上的完整网址,例如:ROOT_URL="http://hostname.domain"
于 2017-05-13T14:00:46.323 回答