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 found
或 Forbidden
我正在尝试重新启动并启动 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 日)