48)地址已在使用:AH00072:make_sock:无法绑定到地址[::]:80

Posted

技术标签:

【中文标题】48)地址已在使用:AH00072:make_sock:无法绑定到地址[::]:80【英文标题】:48)Address already in use: AH00072: make_sock: could not bind to address [::]:80 【发布时间】:2018-12-05 11:01:18 【问题描述】:

当我尝试访问任何文件夹或文件时出现 apache 错误,它返回 Http Not foundForbidden 我正在尝试重新启动并启动 apache

sudo apachectl restart

输出:

(48)Address already in use: AH00072: make_sock: could not bind to address [::]:80
(48)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs

我想阻止它

sudo apachectl stop

输出

httpd (no pid file) not running

我跑sudo lsof -i:80

输出:

COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME

    httpd    8904 root    5u  IPv6 0x21884d81f1597d8f      0t0  TCP *:http (LISTEN)
    httpd    9012 _www    5u  IPv6 0x21884d81f1597d8f      0t0  TCP *:http (LISTEN)
    httpd   12726 _www    5u  IPv6 0x21884d81f1597d8f      0t0  TCP *:http (LISTEN)
    httpd   12731 _www    5u  IPv6 0x21884d81f1597d8f      0t0  TCP *:http (LISTEN)
    httpd   12732 _www    5u  IPv6 0x21884d81f1597d8f      0t0  TCP *:http (LISTEN)

有什么办法解决这个问题吗?

有用的信息:

OS X El Capitan

【问题讨论】:

监听 80 端口的任何东西,你检查过吗?也许使用 netstat? SO 是针对编程问题,而不是关于使用或配置 Linux 及其应用程序的问题。 SuperUser 或 Unix & Linux 将是解决此类问题的更好地方。 Amazon EC2 - Apache server restart issue的可能重复 【参考方案1】:

在我的带有 Mojave (10.14.1) 的 Mac 中,突然 Apache 无法再提供 ipv4 服务,然后给了我错误 403。我试图杀死所有 apache (sudo killall httpd)...检查 de PID's on (sudo lsof | grep AMP | grep apache)...甚至没有工作...只是 ipv6 可用...仍然是错误 403。

什么对我有用:禁用 OSX 的内置 Apache 服务器。

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

之后:

sudo apachectl -k restart

要开心:)

【讨论】:

工作就像一个魅力!从自动加载中删除 apachectl - 工作。 谢谢,我完成了所有的 apache 设置,直到我发现这个错误改变了 sphp 版本。我在 mohave 10.14.3 哇。谢谢你。尝试了很多东西,终于成功了:)【参考方案2】:

这个帮助了我:

请编辑 httpd.conf 文件。

/usr/local/etc/httpd/httpd.conf

然后替换

Listen 80

Listen 127.0.0.1:80

重启apache

sudo apachectl -k restart

【讨论】:

我试图用其他答案中提到的命令来识别阻塞端口 80 的原因,但我没有发现任何阻塞。但是您的解决方案对我有用。谢谢! 我在本地 https 设置中遇到了这个问题,从 Listen 443 更新为 Listen 127.0.0.1:443,类似于下面 Evan 的说明。 - 谢谢@Nuzil【参考方案3】:

可能会发生以下几种情况:

    您运行的是不同版本的 apache。您可以通过运行which apachectl 来确保您使用的是正确的。例如,我也有两个版本的 apache /usr/sbin/apachectl/usr/local/bin/apachectl 您没有以 root 身份运行 apachectl start,尽管您似乎是。 您可以运行 sudo lsof -i:80 查看当前绑定该端口的内容

【讨论】:

啊,所以你有 httpd 正在运行。我忘了什么时候了,但是 macOS 有一个更新,它改变了它正在使用的 apache 的目录并重命名了进程。它搞乱了我的本地开发环境。 你可以运行sudo httpd -k stop来停止服务,然后尝试正常重启apache。我会运行which apachectl 来找出你正在使用的版本 apache 配置文件的旧位置在/etc/apache2 但苹果已经将它移动到/usr/local/etc/httpd 你可以找到服务器配置文件:apachectl -V | grep SERVER_CONFIG_FILE lsof 让我走上了正轨,不知何故,我显然安装了 nginx,它抓住了端口。【参考方案4】:

我之前也以这种方式设置过配置,但在我上次升级 OSX 后遇到了同样的问题。我试图找到在端口 80 或 443 上监听的任何东西,但在任何地方都找不到东西。我花了一段时间,但终于找到了另一篇描述实际有效的修复的文章。请记住,我使用的是 homebrew 安装并已卸载 Mac OSX 附带的默认 apache2 安装。

这是我之前在 httpd.conf 中的内容:

Listen 80

我在 ssl.conf 中有类似的东西

Listen 443 https

我必须更改我的 httpd.conf 文件以使用 localhost 的 ServerName 并在 0.0.0.0:80 上侦听,对于 ssl.conf 也是如此,但 0.0.0.0:443 https

httpd.conf:

ServerName localhost
Listen 0.0.0.0:80

和 ssl.conf

Listen 0.0.0.0:443 https

一旦我尝试重新启动它,一切都很开心。希望有帮助!我会链接到该文章,但我无法再次找到它!

【讨论】:

【参考方案5】:

试试

sudo netstat -ltnp | grep ':80'

输出:tcp6 0 0 :::80 :::* LISTEN 1500/apache2

sudo kill 1500
sudo service apache2 restart

【讨论】:

【参考方案6】:

出现此错误是因为 apache 服务器在端口 80 中默认侦听,因此另一个服务或程序正在使用该端口并且 apache 无法启动。

解决方案是确定正在使用该端口的程序或服务,然后关闭、禁用或卸载它。

确定你可以运行 netstat

sudo netstat -ltnp | grep ':80'

sudo lsof -i:80

在我的例子中,我同时安装了 nginx 和 apache,并且都使用了 80 端口。

临时解决方案:停止或终止服务、程序等

永久解决方案:

    在配置文件中更改apache服务器的端口 /etc/apache2/apache2.conf 卸载使用端口 80 的服务或程序。

在我的情况下,我需要两者,所以我决定通过禁用服务来临时修复它:

systemctl stop MyServiceName.service

如果是服务,则使用 kill 命令。

【讨论】:

以上是关于48)地址已在使用:AH00072:make_sock:无法绑定到地址[::]:80的主要内容,如果未能解决你的问题,请参考以下文章

故障:(98)Address already in use: AH00072: make_sock

Centos7.5启动Apache Web 服务报错AH00072: make_sock: could not bind to address [::]:9096

(98)address already in use: ah00072: make_sock: could not bind to address 0.0.0.0:80

apache启动错误 AH00072: make_sock: could not bind to address [::]:443 windows系统端口/进程查看

(99)Cannot assign requested address: AH00072: make_sock: could not bind to address xx.xxx.xxx.xx:80

最新更新后无法在 Mac High Sierra 10.13.5 上启动 apache(2018 年 6 月 15 日)