2015-08-04 2 views
11

Мой вопрос о запуске HTTP-сервера в сочетании с PM2.Запуск HTTP-сервера NodeJs навсегда с PM2

Проблема я сталкиваемся в том, что:

  1. HTTP-сервер требует в качестве входных данных в папку, которая является корнем сайта и номер порта для запуска веб-сайт на.
  2. PM2 не распознает команду HTTP-сервера, даже если HTTP-сервер установлен с параметром -g.

Так я попробовал следующее (обратите внимание на двойную черточку, который должен передать параметры в скрипт HTTP-сервера:.

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

Но это не работает

Я также попытался:

http-server /home/unixuser/websiteroot -p8686 

Который делает работу, но не имеет большую поддержку рт2?

Любые предложения были бы замечательными, спасибо!

+0

вы можете перейти на путь сборки и нажмите: построить/тычок $ sudo pm2 start/usr/local/bin/http-server -p 8080 – Jaswinder

ответ

28

У вас почти было это.

Проверьте, где HTTP-сервер расположен командой:

$ which http-server 

Вы должны получить что-то вроде этого /usr/bin/http-server

Затем cd к директории, которую вы хотите, чтобы служить файлы и выполнять:

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

--name my-file-server не является обязательным, но -- необходимо передать аргументы до http-server.

+0

Спасибо, что действительно сработало, я не знал, что есть какая команда http-server. –

+1

У вас часто будет несколько версий/инсталляции одного и того же исполняемого файла на одном компьютере, и '' '' '' '' '' удобный, чтобы увидеть, какой из них связан с командой. –

+1

Спасибо, что упомянул '--' передать аргументы http-server, я пришел для этого –

0

, если у нас есть построить порожденную хрюкать, а затем перейти на его пути и попал:

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

Теперь проверить состояние приложения на localhost:8080

Смежные вопросы