我已经创建了节点应用程序,我想在AWS上部署它。
我有设置项目,并希望永久保留节点,所以我在全局安装了pm2
,但当我尝试使用此命令启动pm2的节点应用时
sudo pm2 start index.js
它给了我错误:
sudo:pm2不是命令
没有sudo
我无法启动服务器。
答案 0 :(得分:1)
显然是pm2,其他全局模块不在您的根路径中。您可以像这样传递PATH变量:
sudo env PATH=$PATH pm2 start index.js
这应该做你想要的。
虽然主要是我建议不要这样做,因为你可能不希望你的应用程序与root用户一起运行,而是它自己的孤立和有限的用户,所以如果漏洞,损坏将是有限的。
如果要在计算机启动时运行pm2,则可以使用pm2 startup
命令指示您如何正确执行此操作。
此外,如果您以root身份运行应用程序,那么您可以在端口80上侦听,那么这是错误的方式。我建议看看这个question。有一些很好的建议,例如使用ip表将端口80流量转发到另一个端口,这不需要你的应用程序在root上运行。