我有一个简单的Meteor网络应用程序,我试图在自己的服务器上托管。 服务器的详细信息;使用systemd连接到MongoDB的Linux(Debian)上的Host Meteor(MeteorJS)。错误:URL的格式必须是mongodb:// user:pass @ host:port/dbname
- 的Debian(杰西)的Linux 3.16.0-4-AMD64#1 SMP的Debian 3.16.7-ckt2-1(2014年12月8日)x86_64的GNU/Linux的
- systemd
- 版本的NodeJS 0.10 0.36
- 流星版本1.0.3.1
- MongoDB的版本2.6.7
/etc/systemd/system/customwebapp.service文件;
[Service]
ExecStart=/usr/bin/node /opt/customwebapp/bundle/main.js
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=customwebapp
User=customwebapp
Group=customwebapp
Environment=NODE_ENV=production MONGO_URL='mongodb://localhost'
[Install]
WantedBy=multi-user.target
我使用创建服务帐户;
sudo useradd -mrU customwebapp
我构建了Meteor应用程序;
sudo meteor build --directory /opt/customwebapp
cd /opt/customwebapp/programs/server
sudo npm install
我尝试注册该服务;
sudo systemctl enable customwebapp
sudo systemctl start customwebapp
Syslog报告以下内容;
/opt/customwebapp/bundle/programs/server/node_modules/fibers/future.js:173
Error: URL must be in the format mongodb://user:[email protected]:port/dbname
at Error (<anonymous>)
我试了几个小时才解决了这个问题。 我已经使用了许多不同的MONGO_URL值。 我使用mongo命令在MongoDB中创建了一个管理员或root用户,并将用户:pass @ localhost:27017/customwebapp格式放入URL环境变量中。
无论我做什么,它都会返回相同的错误。
我也尝试使用流星,但它似乎配置Upstart不systemd。
不言而喻,我已经尝试了大量来自SO的解决方案。并非所有我尝试过的解决方案都列在这里。
我怀疑我有问题的原因是因为systemd。
这是我的第一个问题,因为说实话,我有别人的大多数问题都有我面前的问题。这对我来说很有帮助,而且有很多次。现在我希望这会再次帮助。
感谢您抽出时间帮助。
你的'URL'似乎是正确的。你能确定你是否正在读取配置文件中的正确属性。 – BatScream 2015-02-06 06:32:27
对不起BatScream,你在说什么配置文件? – 2015-02-17 01:52:09