情况
过去两年来,我一直在开发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服务器上运行节点。如果有可能,那么任何人都可以告诉我该怎么做?或者它只是一个理想的情况而且无法完成。
答案 0 :(得分:3)
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
答案 1 :(得分:0)
如果您使用云或VPS或任何类型的解决方案,可以完全控制已安装的东西,您可以在那里安装node.js并运行您需要的...
https://github.com/joyent/node/wiki/installing-node.js-via-package-manager
某些服务将允许您选择安装的内容...所以您只需选择nodejs并将其与您的apache一起运行。
但是,如果您使用共享托管解决方案,那么实际上甚至托管节点(如果有)的数量有限,并且解决这个问题对您来说几乎是不可能的。
第二次编辑:很抱歉编辑了两次,但是有一个"没有nodejs服务器"在提到的stackoverflow帖子中 - 实际上有一个服务器并且提到需要npm安装某些模块......这不是正确的方法,但是如果你还想尝试这个,你需要安装节点(和npm一起)和然后你需要npm isntall提到的包,添加帖子中引用的简单服务器文件,运行它然后拥有聊天所需的一切......
如果您需要帮助,请给我打电话,但如果这是时间关键项目,请找一些第三方解决方案......然后了解这个。
答案 2 :(得分:0)
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垃圾或任何东西)。