我有一個簡單的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