我已经创建了节点应用程序,并希望将其部署到AWS上。
我已经安装了项目,并希望使节点永久化,因此我已经在全球范围内安装了pm2,但是当我尝试使用pm2启动节点应用程序时,请使用以下命令
sudo pm2 start index.js这给我带来了错误:
sudo:pm2不是命令
没有sudo,我就无法启动服务器。
发布于 2017-10-07 18:10:33
显然,pm2和其他全局模块不在根路径中。您可以像这样传递路径变量:
sudo env PATH=$PATH pm2 start index.js这应该能做你想做的。
虽然我主要建议不要这样做,因为您可能不希望您的应用程序与根用户一起运行,而是它自己的孤立和有限的用户,因此在漏洞的情况下,损害将是有限的。
如果您希望在计算机启动时运行pm2,则可以使用pm2 startup命令来指导您如何正确地执行此操作。
另外,如果您以root身份运行应用程序,那么您可以在端口80上侦听,这是错误的。我建议你看看这个question。有一些很好的建议,比如使用ip表来禁止端口80到另一个端口的流量,这将不需要您的应用程序在root上运行。
https://stackoverflow.com/questions/46623396
复制相似问题