无法启动httpd - 执行失败; `/bin/launchctl bootstrap gui/501 /Users/*/Library/LaunchAgents/homebrew.mxcl.httpd.plist` 退出并显示 5

问题描述 投票:0回答:10

今天刚刚尝试访问我的本地主机,但它不起作用。我昨天工作了,但我相信这是因为我的 Mac 崩溃了。我尝试使用brew services start httpd 再次启动httpd。结果是:

引导失败:5:输入/输出错误 尝试以 root 身份重新运行该命令以获得更丰富的错误。 错误:执行失败;

/bin/launchctl bootstrap gui/501 /Users/UserName/Library/LaunchAgents/homebrew.mxcl.httpd.plist
以 5 退出。

已尝试重新安装httpd,但仍然出现相同的错误。 有什么想法可能是什么原因吗?

apache
10个回答
48
投票

升级到 macOS Monterey 后,我遇到了同样的问题。但我通过这些命令解决了我的问题。

卸载 homebrew.mxcl.httpd.plist

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.httpd.plist

然后再次加载:

launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.httpd.plist

之后我使用此命令再次启动httpd。

brew services start httpd

41
投票

只是想分享对我有用的方法,供其他仍然陷入困境的人......

我似乎运行了一个正在停止brew版本的apache版本。 (以为我已经删除了内置的 apache!)。

这也发生在我的 Mac 崩溃并收到完全相同的错误消息之后,但我做到了:

完全停止brew httpd服务

brew services stop httpd   

停止 Mac Apache 遗留问题

sudo apachectl -k stop

再次启动brew httpd

brew services start httpd

开始就像一个魅力并解决了我的问题。


10
投票

重新启动我的 Macbook 后,我遇到了同样的问题。 我使用的是 Macbook Air m1 和 Monterey OS 版本。

我已经用这4个命令解决了我的问题

第一次运行:

sudo apachectl -k stop

之后运行这三个命令: (注意:不要以 sudo 身份运行)

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.httpd.plist

launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.httpd.plist

brew services start httpd

然后您可以使用以下命令看到运行服务:

brew services list

8
投票

在尝试了所有建议的解决方案之后,最终对我来说是将 /usr/local/var/log/httpd 中的日志文件的所有者更改为我的用户,而不是 root。

sudo chown [username] *

这花了我几个小时才弄清楚,可悲的是 - 我什至删除并重新安装了httpd(这实际上是一件好事,因为那里有一个旧版本的小桶在附近敲击)。


3
投票

所以在尝试了很多事情之后,这似乎有效:

尝试 Volex 在这里建议的内容(brew 服务。无法启动服务。得到“引导失败:5:输入/输出错误”)给了我更精确的错误消息。

新的错误消息让我想到了这一点: 升级 macOS Sierra 后 apache 无法工作 brew 重新安装 apr-util 解决了问题。


1
投票

对我来说,一旦我尝试启动,我就遇到了同样的问题

postgresql
忘记了我已经启动了它,停止它并再次启动后它起作用了

user@users-MacBook-Pro ~ % brew services start postgresql
Warning: Use postgresql@14 instead of deprecated postgresql
Bootstrap failed: 5: Input/output error
Try re-running the command as root for richer errors.
Error: Failure while executing; `/bin/launchctl bootstrap gui/501 /Users/user/Library/LaunchAgents/[email protected]` exited with 5.
user@users-MacBook-Pro ~ % brew services stop postgresql 
Warning: Use postgresql@14 instead of deprecated postgresql
Stopping `postgresql@14`... (might take a while)
==> Successfully stopped `postgresql@14` (label: homebrew.mxcl.postgresql@14)
user@users-MacBook-Pro ~ % 
user@users-MacBook-Pro ~ % brew services start postgresql
Warning: Use postgresql@14 instead of deprecated postgresql
==> Successfully started `postgresql@14` (label: homebrew.mxcl.postgresql@14)
user@users-MacBook-Pro ~ % 

0
投票

在某些情况下将有助于重新启动 HTTPD。

brew services restart httpd

当 PC 由于某种原因崩溃并且 httpd 正在运行,但 localhost 已“关闭”时,就会发生这种情况。 或者您可以停止 httpd 并重新启动 PC。然后启动httpd就ok了


0
投票

删除

access_log
目录中的
error_log
log
可能会帮助您重现问题,因为有时这些文件不可写。

删除它们后,这些文件将由用户创建,并且错误将记录在那里。


0
投票

在尝试了这篇文章中的所有解决方案但没有成功后,我终于找到了适合我的解决方案。

我不知道怎么做,也不知道为什么,但日志文件的所有者是

root
。事实是
httpd
服务不会在
sudo
中启动...#deadlock。

我刚刚从

access_log
更改了
error_log
/usr/local/var/log/httpd
文件的所有者:

sudo chown <my_regular_user> access_log
sudo chown <my_regular_user> error_log

用brew重新安装httpd:

brew reinstall httpd

执行自动建议的命令:

sudo rm -rf /usr/local/Cellar/httpd/2.4.57.reinstall

最后重新启动我的

httpd
服务

brew services restart httpd

0
投票

就我而言,因为我使用的是 Apple Silicon Mac,所以问题是 httpd.conf 文件中的 php_module 的路径:

我使用的路径适用于之前基于 Intel 的 Mac:

LoadModule php_module /usr/local/opt/php/lib/httpd/modules/libphp.so

我已将这部分路径从

/usr/local/
更改为
/opt/homebrew/
:

LoadModule php_module /opt/homebrew/opt/php/lib/httpd/modules/libphp.so

保存并重新启动 Apache。

© www.soinside.com 2019 - 2024. All rights reserved.