Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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
Mongodb 如何从命令行Meteor Up部署中获取MONGO_URL?_Mongodb_Meteor_Meteor Up - Fatal编程技术网

Mongodb 如何从命令行Meteor Up部署中获取MONGO_URL?

Mongodb 如何从命令行Meteor Up部署中获取MONGO_URL?,mongodb,meteor,meteor-up,Mongodb,Meteor,Meteor Up,我目前正在使用Meteor Up部署到数字海洋。如果我没有在mup.json中指定MONGO_URL,我可以在网站运行时从命令行获取值吗,即我不想关闭网站 如果我转到应用程序目录并运行meteor mongo--url,我会得到以下错误: mongo: Meteor isn't running a local MongoDB server. This command only works while Meteor is running your application locally. Sta

我目前正在使用Meteor Up部署到数字海洋。如果我没有在mup.json中指定MONGO_URL,我可以在网站运行时从命令行获取值吗,即我不想关闭网站

如果我转到应用程序目录并运行meteor mongo--url,我会得到以下错误:

mongo: Meteor isn't running a local MongoDB server.

This command only works while Meteor is running your application
locally. Start your application first. (This error will also occur if
you asked Meteor to use a different MongoDB server with $MONGO_URL when
you ran your application.)

If you're trying to connect to the database of an app you deployed
with 'meteor deploy', specify your site's name with this command.
即使我从app目录运行app,它也只会给出localhost MONGO_URL。我需要部署的应用程序的MONGO_URL

我也看了一些答案中建议的一个例子。我不同意在服务器上没有其他程序运行的情况下获取MONGO_URL是“不可能的”。伙计们,我们并不是在挑战物理定律。从根本上说,应该有一种方法来访问它。只是因为还没有人发现这一点并不意味着这是不可能的

meteor mongo--url应返回url


尝试在应用程序目录中打开另一个shell并运行该命令。

Meteor Up使用
Meteor build
在生产模式下打包应用程序,使其通过
节点运行,而不是通过
Meteor
命令行界面运行。除此之外,这意味着
meteor-foo
将无法在远程服务器上工作(至少默认情况下不会)。因此,您真正需要的是一种远程访问
mongo
本身的方法

我最近在AWS EC2实例上设置了mongo,并在这里列出了一些经验教训:。在Digital Ocean上,您如何操作的一些细节将有所不同,但一旦安装了mongo,您必须注意以下几点:

  • 公共IP/DNS地址:这可能已经很好了,因为您可以部署到服务器
  • 端口安全规则:您需要确保至少从您的IP地址为TCP访问打开端口27017。MongoDB还有一个可以设置的http接口;如果你想使用它,你还需要打开28017
  • /etc/mongod.conf(文件位置可能因Linux风格而异):
    • 取消注释
      port=27017
      以确保您拥有默认端口(我认为这实际上没有必要,但这让我感觉更好,知道在哪里更改默认端口也很好…)
    • 注释掉
      bind_ip=127.0.0.1
      ,以便监听外部接口(例如远程连接)
    • 如果要使用http接口,请取消注释
      httpinterface=true
    • 您可能需要通过
      sudo服务mongod restart
      重新启动
      mongod
      主机。如果您不能有停机时间,这是一个问题,但是如果您更改配置文件,我不知道有什么办法可以解决这个问题
  • 创建用户:您需要远程访问数据库
完成所有这些之后,您应该能够通过运行

mongo server.url.com:27017/mup应用程序名称-u用户名-p
其中,
server.url.com
是远程服务器的url或IP地址,
mup-app-name
mup.json
文件中的
appName
参数,
username
是您为访问数据库而创建的用户,运行命令后会提示您输入该用户的密码(或者您可以将其放在同一行的
-p
之后,具体取决于密码)


也可以通过设置
nginx
在您的远程服务器上反向代理
127.0.0.1:27017
来实现这一点,但我从来没有这样做过,这只是我的猜测。

不幸的是,我在尝试您的建议时出错:“mongo:Meteor没有运行本地MongoDB服务器。”我已经更新了我的问题以反映这一点。你还有什么建议吗?谢谢你的友好回复。我还没有使用Meteor Up(我已经使用pm2推出了我自己的开始脚本).Meteopedia有一个需要改进的问题。看起来像是的副本,显然不可能。感谢您指出类似的问题。它肯定很有用。我编辑了我的问题,以指定我不想使用Python,因为Python涉及到这里提供的解决方案。