2014-09-02 4 views
2

, когда я использую разные рабочие области для apache и для узла - они оба работают нормально. , но если я хочу использовать узел в «рабочей области php», я просто не могу, потому что apache всегда работает и использует порт 8080, а также узел хочет на своем env.PORT., используя apache и узел одновременно в облаке9

Почему я не могу просто закрыть apache в рабочей области php? Можете ли вы дать мне творческий способ заставить его работать?

спасибо !!

ответ

4

Если вы хотите, чтобы остановить Apache в PHP рабочей области, чтобы использовать узел вместо этого, просто запустите:

/etc/init.d/apache2 stop 

порт будет свободен.

+0

спасибо !! спасибо work :) он сделал некоторые проблемы с c9 runner (среда IDE перестала зная, что делать, когда я прошу запустить JS-файл), но через минуту или две это сделало меня счастливым! ;-) –

3

Вы не можете использовать обе службы в одном порту. Есть несколько вещей, которые вы можете сделать в зависимости от усилий, которые вы хотите применить, и сложности, которые вам нужны для вашего решения:

1) Сохранение «обоих» на порту 8080: вы можете эмулировать это, если прослушивать Apache 8080, а узел в другом порту - 8888, затем сделайте VirtualHost, который указывает на ваш IP-адрес (127.0.0.1 тоже работает), используя name based vhosts, вы можете иметь a.mybox: 8080 для вашего обычного рабочего пространства, затем b.mybox: 8080 указывают на рабочее пространство вашего узла. Вы делаете это, используя Apache ProxyPass and ProxyPassReverse к вашему localhost:8888, где прослушивает узел.

2) Вы можете сделать то же самое, что и выше, но вместо NamedVhosts вы можете просто сделать путь сказать/узел /, который плюет обратно ваш node:8888, снова используя ProxyPass.

3) Наконец, самое простое и быстрое решение - просто поставить узел в другой порт, скажем 8888, и перейти к этому. Вы можете указать порт, который вы слушаете в качестве параметра, для вызова listen(): http://nodejs.org/api/net.html#net_server_listen_port_host_backlog_callback.

Вы также можете выполнить проксирование с помощью самого узла или с помощью другого процесса, такого как nginx или haproxy, или одного из многих модулей узла, например this one. В конце концов, проще просто сохранить его в другом порту, делая все остальные конфиги, возможно, не стоит хлопот.

Наконец, если вы пройдете через прокси-сервер с разными vhosts, просто помните, что вы можете определить имена своих хостов в /etc/hosts, если у вас нет полного домена. Опять же, проще.

Надеюсь, это поможет.

+0

3. не будет работать, потому что Cloud9 дает вам 1 порт, доступный для внешнего мира. –

+1

как сказал Ян, вы проигнорировали тот факт, что я спросил о CLOUD9. этот ответ вообще не имеет отношения к вопросу. –

+0

У меня возникла идея, что каждый экземпляр Cloud9 запускался в собственном изображении Unbuntu. Вы можете прослушивать публичный порт в одном, но не должны препятствовать вам привязываться к 127.0.0.1:port, который должен быть доступен прокси локально. –