OSX: 监听本地主机的80端口失败(原因:权限被拒绝)

15

我已经下载了PhpStorm并设置了所有必需的配置。当我尝试在端口80上运行项目时,出现以下错误信息。

无法侦听localhost:80(原因:权限被拒绝)

当我尝试使用任何其他端口,如8080,出现以下错误。

无法侦听localhost:8080(原因:地址已在使用中)

我尝试了几个不同的随机端口,但一直遇到“地址已在使用中”的错误。

我已经安装了xampp。当我尝试在浏览器中使用端口运行URL时,它能够正常工作。问题是它在PhpStorm上无法工作。

我被卡住了。


在PHPStorm运行项目之前,请尝试禁用xampp。您不能同时拥有两个Web服务器。 - Stalinko
你是什么意思? - hellosheikh
以上列出的错误是由谁抛出的?你在PHPStorm中尝试做什么? - Stalinko
1
  1. 你确实需要root权限才能在1024以下的端口上运行任何东西。
  2. 根据你的错误信息,你一定是做错了什么(例如,试图在80(需要root访问权限)或8080端口(我理解已被XAMPP使用)上启动新服务器)。请展示截图,说明你具体是如何操作的——很可能是你做错了什么。
- LazyOne
@LazyOne 谢谢,我改了端口号大于1024,现在它正常工作。 - coding_idiot
4个回答

14

错误描述非常清晰:

错误:

无法在localhost:80上侦听(原因:权限被拒绝)

  • 您真的没有权限使用此端口,因此需要更改用户或使用sudo运行应用程序。

以及错误:

无法在localhost:8080上侦听(原因:地址已在使用中)

  • 您尝试使用的地址localhost:8080已被其他进程/软件使用。

通常,如果更改端口将解决问题:(例如9090)。


但是,如果您想知道在Unix(Mac OSX,Linux)中使用端口80的程序,请使用lsof命令

要做到这一点:

在终端中,您需要使用:

sudo lsof -i :80

这将会导致类似于这样的结果:

COMMAND    PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
httpd       82   root    4u  IPv6 0x763617bed21ecc33      0t0  TCP *:http (LISTEN)
httpd      226   _www    4u  IPv6 0x763617bed21ecc33      0t0  TCP *:http (LISTEN)

根据这个结果,我们可以看到 /usr/sbin/httpd 正在监听我机器上的 80 端口,也就是 Apache 服务器。

要了解监听 80 端口的进程的详细信息,您可以使用 ps 命令:

ps u  PID_of_target_process

那将会返回一个类似于这样的结果:

USER   PID  %CPU %MEM      VSZ    RSS   TT  STAT STARTED      TIME COMMAND
root    82   0.0  0.0  2463324   4248   ??  Ss    9:48AM   0:00.93 /usr/sbin/httpd -D FOREGROUND

您可以使用kill命令通过PID来杀死进程,例如:

sudo kill -KILL PID_of_target_process

当你结束进程时,该端口将再次可用。


8

0

Xampp for Mac

如果您发现无法运行apache并且您没有已经运行的apache web服务器!

......在终端中输入.....

sudo apachectl stop

......然后运行......

sudo /Applications/XAMPP/xamppfiles/bin/apachectl start

.....如果您有一个未指定的端口,您需要进入 applications/xampp/xamppfiles/etc/httpd.conf,在第52或53行上, 您可以设置一个ip或localhost。 添加端口号 添加:端口号示例192.168.64.2:80或localhost:80 保存并运行sudo /Applications/XAMPP/xamppfiles/bin/apachectl start}}}}}}}}}}}}


0
  1. 停止你的 XAMPP Apache 服务器。

  2. 以 ROOT 权限运行 PHPStorm。

如果运行 PHPStorm 显示相同的错误,提示 无法在 localhost:8080 上侦听 (原因:地址已在使用中)。说明端口 80 被其他应用程序占用了。尝试使用一些免费的工具检查你正在使用的端口。停止使用端口 80 的进程并尝试重新运行 PHPStorm。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接