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

2022-03-04 00:00:00 port php phpstorm

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

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

当我尝试使用任何其他端口(如8080)时,我收到此错误。

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

我尝试了几个不同的随机端口。但是我总是收到这个已在使用中的错误。

我安装了xampp。当我尝试在带端口的浏览器中运行url时,它工作得很好。问题是它在PhpStorm上不起作用。

我卡住了。


解决方案

错误描述非常清楚:

错误:

无法在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正在我的计算机(即Apache服务器)上侦听端口80。

要了解侦听端口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

要按PID终止进程,可以使用kill命令,如下所示:

sudo kill -KILL PID_of_target_process

在您终止进程之后,该端口将再次可用。

相关文章