gpt4 book ai didi

macos - Apache 无法启动 - 表示 httpd 模块已加载但未运行

转载 作者:行者123 更新时间:2023-12-01 19:52:29 25 4
gpt4 key购买 nike

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

经过一番摸索并最终检查错误日志后,我得出的结论是 Apache 并未实际运行。例如,ps aux | grep apache 只返回 grep 进程。但是,如果我尝试 sudo/usr/sbin/apachectl start 我会得到“org.apache.httpd:已加载”响应。

我检查了我的 httpd.conf 文件,它看起来非常好。我看不到它有任何变化。我还运行了语法检查命令(它在同一时刻逃过了我的大脑),并且它返回了 OK。我在错误日志中发现的唯一一件事,即最后一件事,是从昨天,2 月 21 日开始的,它说:“[2013 年 2 月 21 日星期四 21:46:02] [注意] 捕获 SIGTERM,正在关闭”

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

有什么想法吗?

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

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 模块已加载。

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



注意:我也在 ServerFault 上发布了此内容 - 我也在此处发布此内容,因为到目前为止我在 ServerFault 上没有得到任何信息,而且我一直在 StackOverflow 上查看 Apache 帖子,所以我假设Apache 问题对于 Stack 来说很好。

最佳答案

当另一个进程已经在监听 Apache 想要绑定(bind)的同一端口(通常是端口 80)时,我可以通过启动 Apache 来重现该问题(有点)。因此,检查是否有另一个进程正在监听该端口:

sudo lsof -i tcp:80 | grep LISTEN

编辑:也许更简单:您可以在 Debug模式下手动启动 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

关于macos - Apache 无法启动 - 表示 httpd 模块已加载但未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15045428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com