我遇到问题在Webfaction上安装Meteor并设置网站和应用程序,因为我看不清楚如何实现这一点,Webfaction支持也没有提供详细的支持。
第一期:
如何在没有root权限的情况下在Webfaction上安装Meteor作为共享主机?
第二期:
如何设置应用程序并配置端口并在后台运行应用服务器。
第3期: 我是否需要设置MongoDB,因为Meteor拥有自己的MongoDB版本?
答案 0 :(得分:4)
经过一番努力,我成功地在Webfaction上部署了Meteor 0.6.6.3应用程序,这就是这个过程。
基本上你需要使用Demteorizer将Meteor应用程序转换为Node.js应用程序才能运行,你需要在webfaction服务器或数据库托管服务(如{{}上设置MongoDB实例。 3}} / MongoHQ,在这种情况下不能使用Meteor自己的MongoDB。
在Webfaction服务器上安装这些东西:
部署应用:
在Webfaction管理控制台中添加两个自定义应用程序,一个用于MongoDB,另一个用于您的应用程序,节点位于应用程序正在侦听的两个端口上。我们称之为MONGO_PORT和APP_PORT。您还需要拥有一个域并将自定义应用程序附加到该域的网站。
在本地安装MongoDB并按照其说明将您的应用程序转换为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
完成后,该应用应该正在运行。
答案 1 :(得分:1)
这是一篇很老的帖子,但由于我最近一直在研究如何让自己从头到尾工作,我觉得值得分享...... 以下github gist是一个python脚本,应该是不言自明的:
https://gist.github.com/mogga/1d038a31e5d998bbcf37
如果您可以改进,请提交拉取请求。
答案 2 :(得分:1)
我知道这是一个古老的问题,但这是我努力奋斗的事情,这也是我想要做出贡献的原因。以下是我将 Meteor 1.3应用程序部署到WebFaction共享托管服务时遵循的步骤。你应该熟悉命令行和ssh之类的东西。但如果你是流星开发者,我想这不是问题。
TL; DR:如果您正在寻找一个耗时较少的选项,我创建了一个遵循以下步骤的npm包:meteorfaction
获取MongoDB网址。我使用并推荐mlab.com。 注意。如果你使用mlab,它应该是mongodb://user:password@ds123456.mlab.com:11122/something
。
在Webfaction Panel上创建一个节点0.10.43应用。我选择此版本的原因是因为Meteor文档声明这是已部署应用程序的最新兼容版本。 记下此应用的端口号。它应与面板中的应用信息一起显示。别忘了为该应用创建一个网站。
在本地计算机的app app文件夹中,运行以下命令:meteor build ./build --architecture os.linux.x86_64
。此步骤应在 build 文件夹中创建 app_name.tar.gz 文件
将此.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
。
Obs:webXXX.webfaction.com是您的webfaction服务器地址。令人惊讶的是,webfaction_username是主要的webfaction用户名。
提取您刚刚上传的.tar.gz文件。对于此步骤,您需要SSH访问权限。运行以下命令:ssh webfaction_user@webXXX.webfaction.com
。然后运行cd webapps/app_name
转到您的app目录。到达那里后,您可以通过运行ls
来检查.tar.gz文件是否存在。如果一切正常,请运行tar -zxvf app_name.tar.gz
。
步骤5将在您的webfaction app目录中创建捆绑文件夹。这是您的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
。您刚刚打开了 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上的app文件夹并运行node bundle/main.js
。这应该会给你一些错误的提示。
答案 3 :(得分:0)
我使用了Brunno的答案,但Meteor 1.4的一些细微变化让它运行起来:
running npm install
我跑完后:meteor npm install --save bcrypt
export
步骤中ROOT_URL="http://hostname.domain"