【问题标题】:Installing Meteor on Webfaction在 Webfaction 上安装 Meteor
【发布时间】:2013-10-29 09:57:11
【问题描述】:

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

第一期:

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

第二期:

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

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

【问题讨论】:

    标签: mongodb meteor webfaction


    【解决方案1】:

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

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

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

    1. Node.jsnpm
    2. Forever(使用 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. 完成,应用程序应该正在运行。

    【讨论】:

    • 谢谢你,我要试试这个......对不起,也开始挣扎了。
    【解决方案2】:

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

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

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

    【讨论】:

    • 谢谢,这是一个旧帖子,是的,但答案会帮助其他人。我测试了 Modulus,它很好,但我相信我需要 Webfaction 来运行一些应用程序。
    【解决方案3】:

    我知道这是一个老问题,但这是我一直在努力解决的问题,这就是我想要贡献的原因。因此,当我将 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. 在本地计算机上的应用文件夹中,运行以下命令:meteor build ./build --architecture os.linux.x86_64。这一步应该在 build 文件夹中创建一个 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_username 是您的主要 webfaction 用户名。

    1. 解压您刚刚上传的 .tar.gz 文件。对于此步骤,您需要 SSH 访问权限。为此运行以下命令:ssh webfaction_user@webXXX.webfaction.com。然后通过运行cd webapps/app_name 转到您的应用程序目录。到达那里后,您可以通过运行ls 检查 .tar.gz 文件是否存在。如果一切正常,请运行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 是您的网络派系应用程序的端口号(第 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 上的应用文件夹并运行 node bundle/main.js。这应该可以提示您出了什么问题。

    【讨论】:

      【解决方案4】:

      我使用了 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"

      【讨论】:

        猜你喜欢
        • 2012-05-07
        • 1970-01-01
        • 1970-01-01
        • 2014-04-17
        • 2017-04-15
        • 2014-09-02
        • 2012-03-16
        • 2013-08-22
        • 1970-01-01
        相关资源
        最近更新 更多