【问题标题】:Not able to run my node app at port 80 on ubuntu 16.04无法在 ubuntu 16.04 的 80 端口运行我的节点应用程序
【发布时间】:2019-02-13 23:03:10
【问题描述】:

我想在 ubuntu 16.04 的 80 端口运行我的节点应用程序。但是,当我尝试使用 npm start 运行我的应用程序时,它会抛出错误 Port in already in use 而它没有被使用。根据Github Reply,我们需要root权限才能在1048以下的端口上运行,这是正确的。 所以当我试图像这样sudo npm install 运行我的应用程序时,它正在抛出 sudo: npm: command not found

那么任何人都可以建议我,如何在 ubuntu 上以 root 权限 运行 npm start。我做了谷歌搜索,但找不到任何东西。

【问题讨论】:

    标签: node.js angular ubuntu npm npm-start


    【解决方案1】:

    首先运行 which npm 以获取 npm 的完整路径。

    然后运行sudo FULL_PATH_TO_NPM start

    或者做一个单行:

    sudo $(which npm) start
    

    【讨论】:

    • 我试过这个“sudo /home/ubuntu/.nvm/versions/node/v8.11.4/bin/npm start”但是它抛出了类似“/usr/bin/env:'node ':没有这样的文件或目录”,而我保留了“/home/ubuntu/.nvm/versions/node/v8.11.4/”环境变量路径。我可以看到使用 node -v --> v8.11.4 和 npm -v --> 6.4.1 的版本
    • 好的,所以您的问题是您的nodenpm 不在root 的$PATH 中。毫不奇怪,看这里:unix.stackexchange.com/questions/83191/… - 你需要在根环境中设置$PATH,那里有各种解决方案。
    • 不知何故这让我找到了解决方案,在下面写下答案。非常感谢@John。
    【解决方案2】:

    sudo 和 npm(包括节点)都应该是同一个目录。例如 sudo 在/usr/bin/ 中始终可用,因此在安装 npm 和 node 后也应该在/usr/bin/ 中使用。早些时候我使用 NVM 安装 node 和 npm。我删除了.nvm 目录并引用了node installation link,它将npm 和node 都放在/usr/bin/ 中。然后现在我可以使用 sudo 运行 npm。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-25
      • 1970-01-01
      • 2018-01-12
      • 2013-02-19
      • 2021-06-05
      • 1970-01-01
      • 1970-01-01
      • 2019-06-23
      相关资源
      最近更新 更多