情况
在过去的两年里,我一直在开发php并使用wamp。然后我遇到一个模块来实现聊天系统,然后是即时通知。所以我去查找并找到了这个非常棒的“nodejs”,它允许您实时连接到已连接的用户。
这家伙nodejs socket.io and php上传了一种集成nodejs socket.io和php而无需节点服务器的方法。所以我下载了他的项目(github)并在我的计算机上运行它但它从8080给出了连接拒绝错误所以,
我去nodejs站点并在我的系统(windows)上安装nodejs。它会自动更新我的环境变量,我可以转到我的命令行来运行示例项目
path(...)node nodeServer.js
然后从共享链接运行项目的索引文件,它开始工作。一切都顺利而美好。
我的问题
如果没有在我的系统上安装nodejs,我无法在小示例项目中运行节点应用程序,那么我应该如何在实时服务器(apache)上安装nodejs并使用命令行来启动nodejs。
我知道这可能太傻了但我对nodejs真的很新,所以我不知道我是否可以在live php服务器上运行节点。如果有可能,那么任何人都可以告诉我该怎么做?或者它只是一个理想的情况而且无法完成。
Node.js不需要与Apache一起安装。 Node.js本身提供了一个可以监听端口的服务器。您可以使用Apache或Nginx来使用代理。您也可以在没有这些服务器的情况下运行应用
使用下面的代码创建文件index.js并运行node index.js
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
打开浏览器并输入以下网址:http://127.0.0.1:1337/您将在那里看到Hello World。在这种情况下,nodejs正在侦听端口1337
如果您正在使用云或VPS或任何类型的解决方案,允许您完全控制安装的东西,您可以在那里安装node.js并运行您需要的...
https://github.com/joyent/node/wiki/installing-node.js-via-package-manager
一些服务将允许您选择安装的内容...所以你只需选择nodejs并与你的apache一起运行它。
但是,如果您使用的是共享托管解决方案,那么实际上甚至托管节点(如果有)的数量有限,解决这个问题对您来说几乎是不可能的。
第二次编辑:很抱歉编辑了两次,但是在提到的stackoverflow帖子中有一个“没有nodejs服务器”的东西 - 实际上有一个服务器,并提到需要npm安装某些模块...这不是正确的方法来做到这一点,但如果你还想尝试这个,你需要安装节点(和npm一起),然后你需要npm isntall提到的包,添加帖子中引用的简单服务器文件,运行它,然后拥有你聊天所需的一切.. 。
如果你需要一些帮助,请ping我,但如果这是时间关键项目,而是找一些第三方解决方案......然后了解这个。
TLDR找到一个主机服务,它将给你管理员和支持防火墙请求,或自我主机w /一个免费的DNS子域,并有一个脚本更新你的IP,所以你不必支付静态。
我的经历:
您实际上也可以利用节点进行输入/输出流操作。查看gulp和node以获取更多信息。在git项目之上使用bower和bluebird可以通过节点轻松快速地设置应用程序。
至于使用socket.io w /节点/ wamp设置,我实际上在过去使用过它。我最初在服务器上安装了wamp,但是我使用apache指令将8080上的代理请求从客户端脚本反转到node.js应用程序。
我确实必须单独安装节点,所以你可能需要像ramnode这样的东西(我认为它们也允许像iis / mvc这样的托管应用程序)。
最简单的主机设置开发imo是自主主机wamp / node w /来自fear.dns的免费子域。
另外ramnode让你可以完全访问你的虚拟机管理功能,我相信。所以你可以在那里安装节点,只要你在xtra端口需要时请求防火墙权限(socket.io在页面上使用diff端口进行请求,所以我不必担心CORs垃圾或任何东西)。