Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Meteor:部署到自己的服务器_Javascript_Mongodb_Deployment_Meteor - Fatal编程技术网

Javascript Meteor:部署到自己的服务器

Javascript Meteor:部署到自己的服务器,javascript,mongodb,deployment,meteor,Javascript,Mongodb,Deployment,Meteor,事实证明,部署到某些通用VP与部署meteor是完全不同的体验。我几乎把它用光了,但作为一个Mongo n00b,我有一个问题:OpLog跟踪。以下是到目前为止的信息: 发行版:科学Linux 6.4版(碳) 我用的是流星1.0。和乘客4.0.53 好消息是,更改到部署目录(我作为捆绑包部署)并执行以下操作: $ node bundle/main.js 允许我访问端口3000上的应用程序,但处于开发模式,因此不会跟踪OpLog(我认为) 所以在经历了一系列的尝试之后,我用这个装备了乘客: &l

事实证明,部署到某些通用VP与部署meteor是完全不同的体验。我几乎把它用光了,但作为一个Mongo n00b,我有一个问题:OpLog跟踪。以下是到目前为止的信息:

发行版:科学Linux 6.4版(碳)

我用的是流星1.0。和乘客4.0.53

好消息是,更改到部署目录(我作为捆绑包部署)并执行以下操作:

$ node bundle/main.js
允许我访问端口3000上的应用程序,但处于开发模式,因此不会跟踪OpLog(我认为)

所以在经历了一系列的尝试之后,我用这个装备了乘客:

<VirtualHost *:80>
   ServerName sc.mywebapp.com
   DocumentRoot /home/deploy/meteor_apps/mywebapp/public
   PassengerStickySessions On
   SetEnv MONGO_URL mongodb://0.0.0.0:27017/meteor
   SetEnv MONGO_OPLOG_URL mongodb://0.0.0.0:27017/local
   SetEnv ROOT_URL http://sc.mywebapp.com

   # Set these ONLY if your app is a Meteor bundle!
   PassengerAppType node
   PassengerStartupFile bundle/main.js
   PassengerAppRoot /home/deploy/meteor_apps/mywebapp
</VirtualHost>
所以,记住我是MongoDB N00b,我需要做什么才能获得Mongo副本集的本地数据库?这将是一个小的,低流量的网站最初-它可能会增长,但我只想得到我身后的初始部署

什么是神奇的步骤


谢谢

神奇的步骤是拥有正确的用户priv,并在oplog连接字符串中提供
authSource
参数

创建您的用户(MongoDB 2.4):

创建您的用户(MongoDB 2.6+):

然后设置您的oplog URL:

MONGO_OPLOG_URL=mongodb://oplogger:PasswordForOplogger@127.0.0.1/local?authSource=admin

谢谢您的回复!这就是我的mongodb n00b部件的用武之地。我让mongo作为一个独立的单db工作。对于生产,我需要将其群集在一台机器上。通过您的提示
cluster:PRIMARY>
我看到您有一个集群。这是如何实现的?这不是每个生产Meteor部署都需要做的事情吗?是的,它是一个副本集(不是分片的,因为Meteor不支持DB级分片)。试着找一本指南,或者说,这有点贵,因为你需要一台专用主机才能访问oplog($180/月+)@NathanM本教程(docs.mongodb.org/manual/tutorial/deploy-replica-set fo)说,在不同的机器上维护mongod实例。有没有办法在一台机器上做到这一点?我发现有一种方法可以将独立数据库转换为副本集,但在生产环境中不推荐使用。@YujunWu您可以使用
--replSet
选项启动单个
mongod
实例。它不会很有用,但会起作用。我真不敢相信我错过了那个愚蠢的OPLOG_URL设置多久了。一旦我启用它并正确设置用户。。。。燃烧得很快。非常感谢。
LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p484/gems/passenger-4.0.53/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
 PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p484/gems/passenger-4.0.53
 PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-1.9.3-p484/ruby
 PassengerNodejs /usr/local/bin/node
</IfModule>
Error: $MONGO_OPLOG_URL must be set to the 'local' database of a Mongo replica set
$ mongo -u YourExistingAdminUserName -p YourExistingAdminPassword 127.0.0.1/admin
cluster:PRIMARY> db.addUser({user: "oplogger", pwd: "PasswordForOplogger", roles: [], otherDBRoles: {local: ["read"]}})
$ mongo -u YourExistingAdminUserName -p YourExistingAdminPassword 127.0.0.1/admin
cluster:PRIMARY> db.createUser({user: "oplogger", pwd: "PasswordForOplogger", roles: [{role: "read", db: "local"}]})
MONGO_OPLOG_URL=mongodb://oplogger:PasswordForOplogger@127.0.0.1/local?authSource=admin