最新更新后无法在 Mac High Sierra 10.13.5 上启动 apache(2018 年 6 月 15 日)

Posted

技术标签:

【中文标题】最新更新后无法在 Mac High Sierra 10.13.5 上启动 apache(2018 年 6 月 15 日)【英文标题】:Unable to start apache on Mac High Sierra 10.13.5 after latest update (June 15th 2018) 【发布时间】:2018-11-26 14:06:34 【问题描述】:

两天前我在 Mac High Sierra 上进行了最新更新,之后我无法在端口 80 上启动 apache。我不断收到

(48)地址已在使用中:AH00072:make_sock:无法绑定到 地址 [::]:8080 (48)地址已经在使用:AH00072:make_sock:无法绑定到 地址 0.0.0.0:8080 没有可用的监听套接字,正在关闭 AH00015: 无法打开日志

我使用 sudo lsof -i TCP:80 检查了端口 80 上运行的内容:

COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
httpd   15116 root    4u  IPv6 0xe9c01ec682a44c67      0t0  TCP *:http 
(LISTEN)
httpd   15387 _www    4u  IPv6 0xe9c01ec682a44c67      0t0  TCP *:http 
(LISTEN)
httpd   15388 _www    4u  IPv6 0xe9c01ec682a44c67      0t0  TCP *:http 
(LISTEN)

sudo lsof -i TCP:8080

httpd   11689 daemon    4u  IPv6 0xe9c01ec68ff9f6a7      0t0  TCP 
*:http-alt (LISTEN)
httpd   11690 daemon    4u  IPv6 0xe9c01ec68ff9f6a7      0t0  TCP 
*:http-alt (LISTEN)
httpd   11691 daemon    4u  IPv6 0xe9c01ec68ff9f6a7      0t0  TCP 
*:http-alt (LISTEN)
httpd   11744 daemon    4u  IPv6 0xe9c01ec68ff9f6a7      0t0  TCP 
*:http-alt (LISTEN)

当我点击 localhost:8080 时,我得到了

EnterpriseDB
Apache - version 2.4.12 
php - version 5.5.26 
Server is up and running 
The default Apache context is www in the Apache installation folder

然后尝试使用 sudo kill -9 portId 杀死端口 8080 上的相关进程,但没有运气。

最后但并非最不重要的一点是,在更新 /etc/apache2/httpd.conf 之前,我有:

<IfDefine SERVER_APP_HAS_DEFAULT_PORTS>
   Listen 8080
</IfDefine>
<IfDefine !SERVER_APP_HAS_DEFAULT_PORTS>
  Listen 80
</IfDefine>

在更新之前一切都很好..

感谢任何帮助。


我附上我在 2018 年 7 月 31 日收到的内容,如 @Ivan Hušnjak 所示

运行 sudo lsof -i TCP:80 我什么也没得到

运行 sudo lsof -i TCP:8080 返回:

COMMAND  PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
httpd   7470   root    4u  IPv6 0xe7c340f978e197b1      0t0  TCP *:http-alt (LISTEN)
httpd   7481 daemon    4u  IPv6 0xe7c340f978e197b1      0t0  TCP *:http-alt (LISTEN)
httpd   7483 daemon    4u  IPv6 0xe7c340f978e197b1      0t0  TCP *:http-alt (LISTEN)
httpd   7484 daemon    4u  IPv6 0xe7c340f978e197b1      0t0  TCP *:http-alt (LISTEN)

【问题讨论】:

【参考方案1】:

我的猜测是 MaxOS 内部 apache 服务器在更新到 10.13.5 后已经接管了端口 80 的控制权,但是我通过卸载它来解决这个问题,就像在此处找到的这些旧答案中所解释的那样 https://***.com/a/46720652/555097 和此处 https://***.com/a/11720851/555097

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

【讨论】:

我回家试一试告诉你 不幸的是,它不起作用。我一直在接受我在帖子开头提到的错误。我还能做些什么来进一步调查这个问题吗?您要发布我的 httpd.conf 或任何其他文件来看看吗? 这对我有用,因为我没有尝试使用系统 apache,而是来自 MAMP 安装的一个。您是否尝试过通过sudo launchctl list 查看注册的守护进程/服务并比较 lsof 结果中的任何 PID 是否匹配? 顺便说一句,我认为您的 httpd.conf 没有任何问题,因为它会在尝试运行 apachectl 时引发不同类型的错误,但是您可以通过 sudo apachectl configtest 测试配置是否正常,然后查看如果它抱怨 antyhing 现在比较端口 80 和 8080 的 launchctl listlsof 结果的 PID,看看是否有任何匹配... ,如果可以安全地使用launchctl unload 命令卸载它

以上是关于最新更新后无法在 Mac High Sierra 10.13.5 上启动 apache(2018 年 6 月 15 日)的主要内容,如果未能解决你的问题,请参考以下文章

macos high sierra怎么安装

无法在 Mac High Sierra 上打开 UIAutomatorviewer

无法在 Mac OS High Sierra 上设置 phpmyadmin

2011年的macos+high+sierra如何更新系统?

Mac git pull失败,最新操作系统导致 SSH issues with Mac OS X High Sierra

新的mac(High Sierra),无法访问localhost,本地客户端站点或phpmyadmin