2015-08-04 13 views
11

Moje pytanie dotyczy uruchamiania serwera HTTP w połączeniu z PM2.Uruchamianie serwera HTTP NodeJs na zawsze z PM2

Problemem jest to, że mam twarz:

  1. serwer HTTP wymaga jako wejście folder, który jest korzeniem stronie internetowej i numer portu, aby uruchomić stronę internetową na.
  2. PM2 nie rozpoznaje polecenia serwera HTTP, nawet jeśli serwer HTTP jest zainstalowany z opcją -g.

więc próbowałem następujących (uwaga podwójną kreskę, która powinna przekazać parametry do skryptu serwer HTTP.

/node_modules/http-server/lib$ pm2 start http-server.js -- /home/unixuser/websiteroot -p8686 

Ale to nie działa

Próbowałem również:

http-server /home/unixuser/websiteroot -p8686 

Który działa, ale nie ma wielkiego poparcia PM2?

Wszelkie sugestie byłyby wspaniałe, dzięki!

+0

można przejść do ścieżki budowania i hit: Build/prod $ sudo pm2 start/usr/local/bin/http-server -p 8080 – Jaswinder

Odpowiedz

28

Prawie już.

Sprawdź gdzie http-serwer znajduje się wykonując:

$ which http-server 

Powinieneś dostać coś takiego /usr/bin/http-server

Następnie cd do katalogu, który chcesz obsługiwać pliki i wykonanie:

$ pm2 start /usr/bin/http-server --name my-file-server -- -p 8080 -d false 

--name my-file-server jest opcjonalna, ale wymagana jest -- do przekazania argumentów do polecenie http-server.

+0

Dzięki, że rzeczywiście działało, nie wiedziałem, że istnieje polecenie, które polecenie http-server. –

+1

Często będziesz mieć wiele wersji/instalacji tego samego pliku wykonywalnego na tym samym komputerze i 'który' jest przydatny do sprawdzenia, który z nich jest połączony z poleceniem. –

+1

Dzięki za podanie '--' do przekazania argumentów do serwera http, przyjechałem –

0

jeśli mamy budować generowane przez grunt, a następnie przejść do jego ścieżki i uderzyć:

~/app/build/prod$ sudo pm2 start /usr/local/bin/http-server -p 8080 

teraz sprawdzić stan aplikacji na localhost:8080

Powiązane problemy