【问题标题】:WebStorm node.js EACCES error 443 running port on MacWebStorm node.js EACCES错误443在Mac上运行端口
【发布时间】:2014-04-21 05:57:29
【问题描述】:

我有一个项目可以在 Windows 上的 WebStorm 中完美运行。在 Mac 上尝试相同操作时,我在尝试使用默认 (443) 端口的 https 时遇到 EACCES 错误

四处玩耍,我注意到跑步

sudo node app.js 

效果很好。 不使用 sudo 执行相同操作会引发 EACCES。而且我无法从 WebStorm 运行项目,因为它在没有 sudo 访问权限的情况下运行节点

当然,尝试任何更高的端口(例如 3000)都可以完美运行。但是我工作了一段时间,在这种情况下所有环境都需要 443 端口。

我知道这是具有管理员权限的东西。在我的 IDE 中运行时,有什么方法可以让它工作吗?诸如“始终以管理员身份运行节点”之类的东西?我是 Mac 新手,所以不知道该怎么做。

异常看起来像:

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: listen EACCES
    at errnoException (net.js:904:11)
    at Server._listen2 (net.js:1023:19)
    at listen (net.js:1064:10)
    at Server.listen (net.js:1138:5)
    at Object.startServer (/Users/xxxxxx/trunk/server.js:112:21)
    at init (/Users/xxxxxx/trunk/app.js:12:12)
    at Object.<anonymous> (/Users/xxxxxx/trunk/app.js:15:1)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)

以防万一,启动服务器的代码:

  var options = {
    key: fs.readFileSync("./server/certificate/xxxxxx.key").toString(),
    cert: fs.readFileSync("./server/certificate/xxxxxx.cert").toString()
  };

  var securedServer = https.createServer(options, function (req, res)
  {
    app.handle(req, res);
  });

  securedServer.listen(config.securePort); //443 in this case

同样,此代码在具有 root 访问权限的 windows 和 mac 中均有效。所以,这不是问题的原因。

非常感谢您的帮助!

【问题讨论】:

    标签: node.js macos https webstorm


    【解决方案1】:

    提交请求以启用从 WebStorm 以 sudo 运行 node.js:http://youtrack.jetbrains.com/issue/WEB-11972

    同时,在 Mac 上的不同端口上运行应用程序并将端口转发配置为:

    sudo ipfw add 101 fwd 127.0.0.1,8443 tcp from any to me 443
    

    【讨论】:

      【解决方案2】:

      我可以建议使用端口转发。请参阅https://serverfault.com/questions/112795/how-can-i-run-a-server-on-linux-on-port-80-as-a-normal-user 了解可能的解决方法 另一种可能的方法是将 WebStorm 本身作为 sudo 运行...

      无论如何,请随时向 youtrack http://youtrack.jetbrains.com/issues/WEB提出请求以 sudo 运行 node 的可能性

      【讨论】:

      • 谢谢,如果没有更好的建议,我会使用端口转发...我还尝试使用 sudo 运行 webstorm,例如“sudo open webstorm.app”。 WebStorm 已启动,但没有解决 EACCES 问题。
      猜你喜欢
      • 2017-08-01
      • 2014-08-16
      • 1970-01-01
      • 2021-01-29
      • 1970-01-01
      • 2019-01-11
      • 2012-02-28
      相关资源
      最近更新 更多