Php 在cloud9上同时使用apache和node

Php 在cloud9上同时使用apache和node,php,node.js,apache,cloud9-ide,Php,Node.js,Apache,Cloud9 Ide,当我为apache和node使用不同的工作区时,它们都可以正常工作。 但是,如果我想在“php工作区”上使用node,我就是做不到,因为apache总是启动并使用端口8080,就像节点想在其env.port上使用一样 为什么我不能在php工作区上关闭apache? 你能给我一些创造性的方法让它工作吗 谢谢 不能让两个服务都在一个端口中侦听。根据您想要投入的精力和解决方案所需的复杂性,您可以做几件事: 1) 在端口8080上保持“两者”:您可以通过让Apache监听8080来模拟这一点,另一个端口

当我为apache和node使用不同的工作区时,它们都可以正常工作。 但是,如果我想在“php工作区”上使用node,我就是做不到,因为apache总是启动并使用端口8080,就像节点想在其env.port上使用一样

为什么我不能在php工作区上关闭apache? 你能给我一些创造性的方法让它工作吗


谢谢

不能让两个服务都在一个端口中侦听。根据您想要投入的精力和解决方案所需的复杂性,您可以做几件事:

1) 在端口
8080上保持“两者”:您可以通过让Apache监听8080来模拟这一点,另一个端口中的节点说8888,然后制作一个指向您的IP的虚拟主机(127.0.0.1也可以),使用,您可以让a.mybox:8080指向您的常规工作区,然后b.mybox:8080指向您的节点工作区。通过使用Apache的对节点正在侦听的
localhost:8888
执行此操作

2) 您可以执行与上面相同的操作,但不必使用
NamedVhosts
,您只需创建一个路径,即/node/,该路径再次使用
ProxyPass
吐回您的
节点:8888

3) 最后,最简单、最快的解决方案是将节点放在另一个端口,比如8888,然后转到该端口。您可以将正在侦听的端口指定为
listen()
调用的参数:

您还可以使用Node本身,或者使用另一个进程(如nginx或haproxy)或Node的许多模块(如)中的一个来执行代理。最后,它只是更容易保持在不同的端口,做所有其他配置可能不值得的麻烦

最后,如果您使用不同的vhost进行代理,请记住,如果您没有完整的域,您可以在
/etc/hosts
中定义主机名。同样,更容易


希望有帮助。

如果您想在PHP工作区中停止Apache以使用node,只需运行:

/etc/init.d/apache2 stop

端口将是免费的。

3。不会工作,因为Cloud9提供了一个外部世界可以访问的端口。正如Jan所说,您忽略了我询问Cloud9的事实。这个答案与这个问题根本不相关,我认为每个Cloud9实例都在自己的Unbuntu映像中运行。您可以在一个端口中侦听公共端口,但不应保留绑定到127.0.0.1:端口的权限,代理应该可以在本地访问该端口。谢谢!!感谢工作:)c9运行程序出现了一些问题(当我要求运行JS文件时,IDE不知道该怎么做),但一两分钟后,它让我很高兴!;-)