Apache 不会在 OSX 上启动。 “httpd (pid 80) 已经在运行”

Posted

技术标签:

【中文标题】Apache 不会在 OSX 上启动。 “httpd (pid 80) 已经在运行”【英文标题】:Apache won't start on OSX. "httpd (pid 80) already running" 【发布时间】:2015-12-28 23:12:30 【问题描述】:

上周我的本地 Apache 停止工作,error.log 中没有任何消息...

检查 system.log 我看到了:

com.apple.xpd.launchd: (org.apache.httpd) Service only ran for 0 seconds. Pushing respawn out every 10 seconds.

经过一番谷歌搜索后,我跑了sudo /usr/sbin/httpd -k start -e Debug -E /dev/stdout

这给了我一个加载模块的列表,然后是一条关于 httpd 已经在运行的消息:

...
[Wed Sep 30 22:01:04.344972 2015] [so:debug] [pid 8657] mod_so.c(266): AH01575: loaded module alias_module from /usr/libexec/apache2/mod_alias.so
[Wed Sep 30 22:01:04.345183 2015] [so:debug] [pid 8657] mod_so.c(266): AH01575: loaded module hfs_apple_module from /usr/libexec/apache2/mod_hfs_apple.so
httpd (pid 80) already running

即使我第一次运行sudo apachectl stop,我也会得到相同的结果

运行ps aux | grep [h]ttpd表明httpd没有运行。

帮助表示赞赏!

【问题讨论】:

你确定它的意思是 PID 80 吗?而不是端口 80?在我看来,这种情况更有可能发生。你有 Skype 运行吗?它喜欢绑定到端口 80 / 443,并且会阻止网络服务器启动。如果您打开了Skype,请将其杀死并重新启动httpd。如果没有 Skype,请检查 httpd 是否已经在运行,或者其他正在运行的东西是否已经绑定到端口 80。 我同意 PID 80 看起来很可疑,但这就是它所说的。我安装了Skype,但没有运行。 httpd 似乎没有运行。 您在哪个平台上运行?具体来说? Ubuntu?森托斯?您正在运行由 selinux 管理的操作系统吗?这似乎也可能是权限问题。也知道任何绑定到1000以下端口的程序都需要以root身份运行。 我已经完全卸载了 Skype,但问题仍然存在......有没有办法告诉哪些应用程序可能绑定到端口 80 并妨碍了? ....我也在使用 OSX El Capitan,虽然这个问题是在我还在使用 Yosemete 时开始的 【参考方案1】:

我知道这个问题已有 5 年历史了,但这就是我解决实例的方式。

    首先我找到了我的日志文件。在我做的 apache config 文件夹中 -

    grep "ErrorLog" httpd.conf

    我注意到以下错误: pid 文件 /usr/local/var/run/httpd/httpd.pid 被覆盖 -- 先前 Apache 运行的不干净关闭?

所以我删除了 httpd.pid 并重新启动了 apache。 这为我解决了这个问题。

可能不是同一个问题,但错误日志对于诊断问题非常有用,

【讨论】:

我的 Mac 运行 Big Sur 崩溃了(非常不寻常!)并且在重新启动 mac 后 Apache 无法启动。 sudo apachectl stop 没有抱怨,但我仍然无法启动(错误“httpd 已经在运行”)。删除 http.pid 文件就成功了!【参考方案2】:

您遇到的问题可能是由于 Skype(如果已安装)或您系统上运行的使用默认端口 80 的类似应用程序所致。 如果您的系统上运行 Skype,那么以下步骤可能会解决您的问题

    转到Skype -> Tools -> Options -> Advance Settings -> Connections

    取消选中 " 将端口 80 和 443 用于其他传入连接 "

    保存设置并重新启动您的 Apache 和 Skype

我希望这能解决您的问题,如果它不起作用,请告诉我们

注意:我有关于 Windows 机器的答案,但我相信如果 Skype 是问题,它也应该在其他平台上工作。

干杯, ?

【讨论】:

感谢 Saurab,这正是我留下的作为对该问题的评论的内容,这就是评论。这不是解决方案,这是调试步骤。 是的,我想多解释一下,可能是他错过了我想的步骤。你是对的,它是一个调试步骤 我根本没有安装 Skype,但问题仍然存在 嗨 bleen,您可以尝试以下参考文献中的解决方案,link,link Saurab:第一个链接阻止此消息出现在控制台中:com.apple.xpd.launchd: (org.apache.httpd) Service only ran for 0 seconds. Pushing respawn out every 10 seconds.,但 Apache 未启动。第二个链接显示运行在 80 IMRemoteU 601 bleen 7u IPv4 0xaad895552a49b4e5 0t0 TCP 10.0.1.6:51296->107.14.41.136:http (CLOSE_WAIT) 上的名为 IMRemoteU 的东西我不知道那是什么,如何杀死它,谷歌什么也没告诉我。想法?

以上是关于Apache 不会在 OSX 上启动。 “httpd (pid 80) 已经在运行”的主要内容,如果未能解决你的问题,请参考以下文章

Xampp 不会在 Mac OSX 上启动 MySQL 服务器?

Xampp localhost 加载但 XAMPP 的 Apache 无法启动,而另一个网络服务器正在使用 OSX 10.8.4 上的端口 80

我如何让 Genymotion 在 OSX 中启动时不会崩溃?

Applescript启动XAMPP osx,弹出时不会输入密码?

在此服务器Apache mac osx 10.10上找不到请求的URL /

XAMPP - Apache 未在 Mac OS 上启动