今天刚刚尝试访问我的本地主机,但它不起作用。我昨天工作了,但我相信这是因为我的 Mac 崩溃了。我尝试使用brew services start httpd 再次启动httpd。结果是:
引导失败:5:输入/输出错误 尝试以 root 身份重新运行该命令以获得更丰富的错误。 错误:执行失败;
/bin/launchctl bootstrap gui/501 /Users/UserName/Library/LaunchAgents/homebrew.mxcl.httpd.plist
以 5 退出。
已尝试重新安装httpd,但仍然出现相同的错误。 有什么想法可能是什么原因吗?
升级到 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
只是想分享对我有用的方法,供其他仍然陷入困境的人......
我似乎运行了一个正在停止brew版本的apache版本。 (以为我已经删除了内置的 apache!)。
这也发生在我的 Mac 崩溃并收到完全相同的错误消息之后,但我做到了:
完全停止brew httpd服务
brew services stop httpd
停止 Mac Apache 遗留问题
sudo apachectl -k stop
再次启动brew httpd
brew services start httpd
开始就像一个魅力并解决了我的问题。
重新启动我的 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
在尝试了所有建议的解决方案之后,最终对我来说是将 /usr/local/var/log/httpd 中的日志文件的所有者更改为我的用户,而不是 root。
sudo chown [username] *
这花了我几个小时才弄清楚,可悲的是 - 我什至删除并重新安装了httpd(这实际上是一件好事,因为那里有一个旧版本的小桶在附近敲击)。
所以在尝试了很多事情之后,这似乎有效:
尝试 Volex 在这里建议的内容(brew 服务。无法启动服务。得到“引导失败:5:输入/输出错误”)给了我更精确的错误消息。
新的错误消息让我想到了这一点: 升级 macOS Sierra 后 apache 无法工作 brew 重新安装 apr-util 解决了问题。
对我来说,一旦我尝试启动,我就遇到了同样的问题
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 ~ %
在某些情况下将有助于重新启动 HTTPD。
brew services restart httpd
当 PC 由于某种原因崩溃并且 httpd 正在运行,但 localhost 已“关闭”时,就会发生这种情况。 或者您可以停止 httpd 并重新启动 PC。然后启动httpd就ok了
删除
access_log
目录中的 error_log
和 log
可能会帮助您重现问题,因为有时这些文件不可写。
删除它们后,这些文件将由用户创建,并且错误将记录在那里。
在尝试了这篇文章中的所有解决方案但没有成功后,我终于找到了适合我的解决方案。
我不知道怎么做,也不知道为什么,但日志文件的所有者是
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
就我而言,因为我使用的是 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。