我有一个可以在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

同样,此代码在Windows和Mac中都可以用root访问。 因此,这不是问题的原因。

非常感谢您的帮助!

===============>>#1 票数:3 已采纳

提交的请求,以便从WebStorm运行的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 票数:0

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

无论如何,请随时请求以sudo的身份将节点运行到youtrack的请求,网址为http://youtrack.jetbrains.com/issues/WEB

  ask by Yura K. translate from so

未解决问题?本站智能推荐: