Macos 阿帕奇赢得';t start——表示httpd模块已加载,但不是';t运行

Macos 阿帕奇赢得';t start——表示httpd模块已加载,但不是';t运行,macos,apache,configuration,virtualhost,Macos,Apache,Configuration,Virtualhost,因此,我一直在使用OS X 10.8.2上的多个虚拟主机。我使用Apache2安装和MySQL运行基于名称的虚拟主机。直到昨天晚上,他们都工作得很好。突然,我的所有虚拟主机重定向到“无法连接到”页面 在反复研究并最终检查错误日志之后,我得出结论,Apache实际上并没有运行。例如,ps aux | grep apache只返回grep进程。然而,如果我尝试sudo/usr/sbin/apachectl start,我会得到“org.apache.httpd:ready loaded”的响应 我检

因此,我一直在使用OS X 10.8.2上的多个虚拟主机。我使用Apache2安装和MySQL运行基于名称的虚拟主机。直到昨天晚上,他们都工作得很好。突然,我的所有虚拟主机重定向到“无法连接到”页面

在反复研究并最终检查错误日志之后,我得出结论,Apache实际上并没有运行。例如,ps aux | grep apache只返回grep进程。然而,如果我尝试sudo/usr/sbin/apachectl start,我会得到“org.apache.httpd:ready loaded”的响应

我检查了我的httpd.conf文件,它看起来非常好。我看不到它有任何变化。我还运行了syntax check命令(此时我的大脑无法执行该命令),它返回OK。我在错误日志中发现的唯一一件事,最后一件事,是昨天,2月21日,上面写着:“[Thu Feb 21 21:46:02 2013][notice]捕获SIGTERM,正在关闭”

从那时起,我的Apache错误日志就不包含任何内容(因为它没有运行)。我已经重新启动,尝试重新启动apache;我完全不明白为什么它认为它在运行,尽管它不是

有什么想法吗

在/var/logs/system.log中,当我尝试启动和重新启动Apache时:

Feb 23 09:27:00 Baileys-MacBook-Pro com.apple.launchd[1] (org.apache.httpd[8766]): Exited with code: 1
Feb 23 09:27:00 Baileys-MacBook-Pro com.apple.launchd[1] (org.apache.httpd): Throttling respawn: Will start in 10 seconds
Feb 23 09:27:10 Baileys-MacBook-Pro com.apple.launchd[1] (org.apache.httpd[8767]): Exited with code: 1
Feb 23 09:27:10 Baileys-MacBook-Pro com.apple.launchd[1] (org.apache.httpd): Throttling respawn: Will start in 10 seconds
Feb 23 09:27:16 Baileys-MacBook-Pro.local sudo[8769]:   bailey : TTY=ttys000 ; PWD=/private/var/log ; USER=root ; COMMAND=/usr/sbin/apachectl start
Feb 23 09:27:20 Baileys-MacBook-Pro com.apple.launchd[1] (org.apache.httpd[8772]): Exited with code: 1
Feb 23 09:27:20 Baileys-MacBook-Pro com.apple.launchd[1] (org.apache.httpd): Throttling respawn: Will start in 10 seconds
Feb 23 09:27:20 Baileys-MacBook-Pro.local sudo[8773]:   bailey : TTY=ttys000 ; PWD=/private/var/log ; USER=root ; COMMAND=/usr/sbin/apachectl restart
Feb 23 09:27:20 Baileys-MacBook-Pro com.apple.launchd[1] (org.apache.httpd[8777]): Exited with code: 1
Feb 23 09:27:20 Baileys-MacBook-Pro com.apple.launchd[1] (org.apache.httpd): Throttling respawn: Will start in 10 seconds
Feb 23 09:27:26 Baileys-MacBook-Pro.local sudo[8778]:   bailey : TTY=ttys000 ; PWD=/private/var/log ; USER=root ; COMMAND=/usr/bin/vi system.log
重新启动后,此问题仍然存在。从前几天开始,它将不会启动,但相信httpd模块已加载

我试图通过谷歌找到答案,但是——有人知道Apache是如何检查是否加载的吗?我知道很多服务都会锁定要运行的文件;Apache是否可能在某个地方有一个锁文件,尽管Apache当前未运行,但该文件仍处于锁定状态



注意:我也在ServerFault上发布了这篇文章——我也在这里发布了这篇文章,因为到目前为止,我还没有得到任何关于ServerFault的信息,我一直在查看有关StackOverflow的Apache文章,所以我假设Apache的问题对于Stack来说很好。

我可以重现这个问题(有点)当另一个进程正在侦听Apache要绑定到的同一端口(通常是端口80)时启动Apache。因此,请检查该端口上是否有其他进程正在侦听:

sudo lsof -i tcp:80 | grep LISTEN
编辑:可能更简单:您可以在调试模式下手动启动Apache,查看它无法启动的原因:

sudo /usr/sbin/httpd -k start -e Debug -E /dev/stdout
在我的情况下(已经在端口80上侦听的内容),它将生成:

(48)Address already in use: make_sock: could not bind to address 0.0.0.0:80
罗伯特克莱普的指针:

sudo/usr/sbin/httpd-k start-e Debug-e/dev/stdout

为我解决了一个相关的问题。我想,相同的症状,不同的原因。 我使用SSL设置了一个测试虚拟主机&一个自签名证书

我已经生成了一个带有密码短语的私钥。 所以httpd在等待一个密码短语(我没有提供)。 当我开始使用debug选项时,我得到了提示,提供了密码短语&httpd启动

因此,将在没有密码短语的情况下重做私钥…

在我的情况下,我得到:

(2) 没有这样的文件或目录:httpd:无法打开错误日志文件 /private/var/log/apache2/error\u log。无法打开日志


创建目录apache2使其运行。

不知道这是否相关,但由于我面临同样的问题,并找到了另一种解决方案,所以还是让我输入2c

当我收到同样的问题时,我查看了这篇文章。事实证明,httpd.conf文件是罪魁祸首。我把它改成了安装一些东西。虽然我删除了安装程序文件,但我忘了重新更改httpd.conf。我希望你没有面临同样的问题


关于端口80上的问题,我曾看到skype霸占了端口443(天知道是什么原因),在我关闭它之后,我得到了更好的结果。确保您没有在端口80上运行skype。

当我运行时,输出为nothing。您的Apache是否在端口80上侦听?否则,您必须在
tcp:
之后更改端口号。您是在运行内置的Apache2,还是安装了MAMP或其他什么?我的Apache确实在端口80上运行,是的。它是内置的Apache2forOSX10.8.2。我做到了——它没有输出,仍然没有运行。我最后尝试重新安装山狮,但没有成功。我想起了一次奇怪的重启,我的MacBookPro无法加载OSX,我不得不重新安装。老实说,我怀疑这是我的磁盘驱动器的某种硬件问题。谢谢
sudo/usr/sbin/httpd-k start-e Debug-e/dev/stdout
真是天赐良机。这对我来说很有效,我的尝试是在/mnt/apache2中查找,所以我在mnt中创建了一个“apache2”目录,它成功了!