我想知道,如果我将 Meteor 应用程序部署到 VM,为什么我不能在 vm 上安装 Meteor,然后使用 meteor run 命令运行我的应用程序?文档的部署部分说要创建一个 tarball 包并将其部署到具有 Node 和 MongoDB 的服务器,但我不能只在服务器上安装 Meteor 吗?然后设置我的 DNS 条目来监听 3000 端口……为什么这个想法行不通?
2 回答
你的想法会很好。但是,我只是建议,如果您要使用它,最好在更“生产”类型的环境中运行。它很容易设置。
在高层次上,您将需要:
- 需要安装Node 0.8.x
- 需要安装MongoDB
- 按照此处的说明进行部署。这些刚刚针对 Meteor 0.5.5 进行了更新,所以请注意这一点。
- 需要永远安装 node.js 包
为了让我的生活更轻松,我创建了一个脚本来处理启动/停止我的流星应用程序。它将设置一切以使用完整的 MongoDB:
#!/bin/bash
SUCCESS=0
FAILURE=1
if [ $# -ne 1 ]
then
echo "Usage: start|stop|restart"
exit $FAILURE
fi
case "$1" in
start )
export MONGO_URL=mongodb://localhost:27017/<name of the database>
export PORT=3000
export ROOT_URL=http://yourhostname.com:3000
forever start bundle/main.js
;;
stop )
forever stop bundle/main.js
;;
restart )
forever restart bundle/main.js
;;
esac
您可以在常规安装的 Meteor 上在 VM 中运行部署。
可以将其想象为使用内置开发服务器运行 rails 应用程序。就 Meteor 而言,捆绑版本应该与开发版本没有什么不同。您创建的捆绑包确保所有必要的依赖项也与其捆绑在一起。
来自流星文档的关于流星捆绑的引用:
此命令将以 tarball 的形式生成一个完全包含的 Node.js 应用程序。要运行此应用程序,您需要提供 Node.js 0.8 和 MongoDB 服务器。然后,您可以通过调用节点、指定应用程序要侦听的 HTTP 端口和 MongoDB 端点来运行应用程序。如果您还没有 MongoDB 服务器,我们可以向 MongoHQ 的朋友推荐。
$ PORT=3000 MONGO_URL=mongodb://localhost:27017/myapp 节点包/main.js
其他包可能需要其他环境变量(例如,电子邮件包需要 MAIL_URL 环境变量)。
好吧,我从未将底层数据库更改为具有开发版本的专用 MongoDB 服务器,但我认为这应该可以通过设置上述环境变量来实现。
PS:
你写了:
然后设置我的 DNS 条目来监听 3000 端口...
您将很难设置带有 DNS 条目的端口...