我已经注册了DirectAdmin的VPS,运行CentOS,我使用的是我从其他网站注册的域名。 我已经做了必要的configuration,使域显示VPS的默认页面。 我也使用CentOS安装了node.js和mongoDB,但是我一直在运行应用程序。 我为MongoDB设置了一个.conf文件,其中bind_ip被设置为VPS的IP,当我尝试在端口27017上运行MongoDB时,我收到以下消息:
service mongod start Starting mongod: [ OK ] bash: /var/log/mongodb/mongodb.log: Permission denied
我认为这是由于我没有对VPS做任何授权的事实,但是我不知道如何进行授权。 我究竟做错了什么?
另外,我不能让node.js正常运行。 当我在CentOS上运行一个基本的node.js应用程序,端口3000,似乎一切正常,但是当我在端口3000上访问我的域名或VPS IP时,服务器不响应。 我如何解决这个问题? 我是否需要在我的VPS上configuration端口以使服务器响应?
当在浏览器中未指定端口的情况下打开域时,如何configurationVPS以连接到节点应用程序,而不是显示默认的index.html页面?
我在configurationVPS上的node.js方面没有任何经验,所以我的最后一个问题是:是否有关于在VPS上使用MongoDB运行node.js的教程? 提前致谢。
编辑:我解决了MongoDB的问题,只需重新安装它。 我猜在安装过程中第一次出现了问题。
似乎你是非特权用户启动mongod,所以它不能打开日志文件。 您应该以系统服务的身份运行mongod服务,然后为用户提供访问权(检查db.addUser文档)。
要在生产环境中运行Node.js,最好使用https://github.com/nodejitsu/forever等工具,然后通过代理来代理请求。 你可以使用Apache,所以设置它来监听你的index.html到另一个端口,比如在ports.conf中说8080
Listen 8080
并添加一个虚拟redirect到80你的应用程序,如下所示:
<VirtualHost you.example.com:80> ProxyRequests off <Proxy *> Order deny,allow Allow from all </Proxy> <Location /> ProxyPass http://localhost:3000/ ProxyPassReverse http://localhost:3000/ </Location> </VirtualHost>
也许你可能会失去一些纯粹的Node性能以及这个设置,所以看看https://github.com/nodejitsu/node-http-proxy也。
对于这部分问题:
bash:/var/log/mongodb/mongodb.log:权限被拒绝
您用来启动MongoDB的用户没有权限访问使用logpathconfiguration选项指定的日志文件。 您应该首先找出它正在运行的用户(通常是使用10gen RPM的mongod)。
然后看看日志文件的所有者:
ls -al /var/log/mongodb/mongodb.log
您可能需要使用sudo或以root身份login才能修改权限(或者可能创build文件)。 假设它存在,那么你将需要改变所有权,如下所示:
chown mongod:mongod /var/log/mongodb/mongodb.log
另一个选项是在别处创build一个新的日志文件,并将logpath选项改为指向该文件。