我在 Webfaction 上安装 Meteor 并设置站点和应用程序时遇到问题,因为我查看了没有详细的说明如何实现这一点,并且 Webfaction 支持也没有提供详细的支持。
首要问题 :
如何在没有 root 权限的情况下在 Webfaction 上安装 Meteor 作为共享主机?
第二期:
如何设置应用程序并配置端口以及在后台运行应用程序服务器。
第三个问题:我需要设置 MongoDB,因为 Meteor 有它自己的 MongoDB 版本吗?
我在 Webfaction 上安装 Meteor 并设置站点和应用程序时遇到问题,因为我查看了没有详细的说明如何实现这一点,并且 Webfaction 支持也没有提供详细的支持。
首要问题 :
如何在没有 root 权限的情况下在 Webfaction 上安装 Meteor 作为共享主机?
第二期:
如何设置应用程序并配置端口以及在后台运行应用程序服务器。
第三个问题:我需要设置 MongoDB,因为 Meteor 有它自己的 MongoDB 版本吗?
经过一番努力,我成功地在 Webfaction 上部署了 Meteor 0.6.6.3 应用程序,过程如下。
基本上你需要使用Demteorizer将 Meteor 应用程序转换为 Node.js 应用程序才能运行,你需要在你的 webfaction 服务器或像MongoHQ / MongoLab这样的数据库托管服务上设置一个 MongoDB 实例,Meteor 自己的 MongoDB 不能在这种情况下使用。
在 Webfaction 服务器上安装这些东西:
要部署应用程序:
在 Webfaction 管理控制台中添加两个客户应用程序,一个用于 MongoDB,一个用于您的应用程序,向下连接应用程序正在侦听的两个端口。我们称它们为 MONGO_PORT 和 APP_PORT。您还需要拥有一个域并将客户应用程序附加到该域的网站。
在本地安装Demeteorizer并按照其说明将您的应用程序转换为 Node.js 应用程序,然后将转换后的应用程序上传到 webfaction 服务器。您可以使用 ftp 或设置 git 存储库来简化上传过程。
在 Webfaction 上启动 MongoDB 实例,在 ssh shell 上使用以下命令以守护程序模式运行它:
mongod --fork --logpath ~/tmp/mongodb.log --dbpath ~/.data/db --port [MONGO_PORT]
根据 Demeteorizer 说明设置环境变量,根据我的经验,应用程序在 Webfaction 上正常运行需要这三个变量:
export MONGO_URL="mongodb://localhost:[MONGO_PORT]/[DB_NAME]?autoReconnect=true"
export PORT="[APP_PORT]"
export ROOT_URL="http://[YOUR_DOMAIN]"
在 webfaction 上导航到您的应用程序的文件夹,并永远使用它在后台运行它:
forever start main.js
完成,应用程序应该正在运行。
这是一篇旧文章,但由于我最近一直在研究如何让自己从头到尾工作,我认为值得分享......以下 github gist 是一个 python 脚本,应该是不言自明的:
https://gist.github.com/mogga/1d038a31e5d998bbcf37
如果您可以改进它,请提交拉取请求。
我知道这是一个老问题,但这是我一直在努力解决的问题,这就是我想贡献的原因。因此,当我将Meteor 1.3 应用程序部署到 WebFaction 共享托管服务时,这是我遵循的步骤 。您应该熟悉命令行和 ssh 之类的东西。但如果你是 Meteor 开发者,我想这不是问题。
TL;DR:如果您正在寻找一个耗时较少的选项,我创建了一个 npm 包,它遵循以下步骤:meteorfaction
获取 MongoDB URL。我为此使用并推荐 mlab.com。请注意这一点。如果您使用 mlab,它应该类似于mongodb://user:password@ds123456.mlab.com:11122/something
.
在Webfaction Panel上创建一个 Node 0.10.43 应用程序。我选择这个版本的原因是因为 Meteor 文档指出这是已部署应用程序的最新兼容版本。记下这个应用程序的端口号。它应该与面板中的应用程序信息一起显示。不要忘记为该应用程序创建一个网站。
在您的本地计算机上,在您的 app 文件夹中,运行以下命令:meteor build ./build --architecture os.linux.x86_64
. 此步骤应在构建文件夹中创建一个app_name.tar.gz文件
将此 .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 用户名。
解压您刚刚上传的 .tar.gz 文件。对于此步骤,您需要 SSH 访问权限。运行以下命令:ssh webfaction_user@webXXX.webfaction.com
为此。然后通过运行进入你的应用目录cd webapps/app_name
。到达那里后,您可以通过运行来检查 .tar.gz 文件是否存在ls
。如果一切正常,运行tar -zxvf app_name.tar.gz
.
第 5 步将在您的 webfaction 应用程序目录中创建一个bundle文件夹。这是您的 Meteor 应用程序所在的位置。运行以下命令:cd bundle/programs/server
然后npm install
. 这将安装应用程序依赖项。
返回到您的 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 步)
运行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.js
为bundle/main.js
,然后按Esc。最后,输入:wq并按Enter保存并退出。
现在,仍然在该目录上,运行以下命令:./stop
然后./start
.
如果一切正常,您应该能够看到您的应用程序正在运行。如果您看到502 Bad Gateway,请转到 webfaction 上的应用程序文件夹并运行node bundle/main.js
。这应该给你一个错误的提示。
我使用了 Brunno 的答案,但 Meteor 1.4 有一些细微的变化来让它运行:
running npm install
我跑了之后:meteor npm install --save bcrypt
export
步骤上使用 ROOT_URL 上的完整网址,例如:ROOT_URL="http://hostname.domain"