apache 48)地址已被使用:AH00072:制造_袜子:无法绑定到地址[::]:80

nfeuvbwi  于 2023-02-13  发布在  Apache
关注(0)|答案(8)|浏览(104)

当我尝试访问任何文件夹或文件时,我收到一个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
hfsqlsce

hfsqlsce1#

在我的Mac与Mojave(10.14.1)突然Apache不能给服务ipv4了,然后给我错误403.我试图杀死所有的apache(sudo killall httpd)...检查de PID的(sudo lsof|grep放大器|grep apache)...甚至不工作...只有ipv6可用...仍然错误403。
对我有效的方法:禁用OSX的内置Apache服务器。

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

之后:

sudo apachectl -k restart

开心点:)

pprl5pva

pprl5pva2#

这个帮助了我:
请编辑httpd.conf文件。

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

并更换

Listen 80

Listen 127.0.0.1:80

重新启动apache

sudo apachectl -k restart
4urapxun

4urapxun3#

有几件事可能会发生:
1.您运行的是不同版本的apache,可以通过运行which apachectl来确保使用的是正确的版本,例如,我还有两个版本的apache /usr/sbin/apachectl/usr/local/bin/apachectl
1.您没有以root身份运行apachectl start,尽管看起来您是这样。
1.您可以运行sudo lsof -i:80来查看当前绑定该端口的内容

cwxwcias

cwxwcias4#

试试看

sudo netstat -ltnp | grep ':80'

输出:tcp 6 0 0:::80:::* 监听1500/apache 2

sudo kill 1500
sudo service apache2 restart
8ehkhllq

8ehkhllq5#

这个错误发生是因为apache服务器在端口80中通过deault侦听,所以另一个服务或程序正在使用该端口,apache无法启动。
解决方案是确定什么程序或服务正在使用该端口,然后关闭、禁用或卸载它。
要标识,您可以运行netstat

sudo netstat -ltnp | grep ':80'

sudo lsof -i:80

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

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

1.在配置文件/etc/apache 2/apache2.conf中更改apache服务器的端口
1.卸载使用端口80的服务或程序。
在我的情况下,我需要这两个,所以我决定暂时修复它禁用服务与:

systemctl stop MyServiceName.service

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

bprjcwpo

bprjcwpo6#

我以前也是这样设置配置的,我上次升级OSX后也遇到了同样的问题。我试着在端口80或443上找到任何正在监听的东西,但在任何地方都找不到。我花了一段时间,但最终找到了另一篇文章,描述了一个实际有效的修复程序。请记住,我“我使用的是自制安装,并且已经卸载了MacOSX附带的默认apache 2安装。
下面是我以前在httpd.conf中的内容:

Listen 80

我在ssl.conf里也有类似的东西

Listen 443 https

我不得不修改我的httpd.conf文件,以使用localhost的服务器名,并侦听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

当我尝试重新启动它时,一切都很好。希望这能有所帮助!我想链接到这篇文章,但我很难再次找到它!

nszi6y05

nszi6y057#

看起来httpd已经在运行了。要检查run
lsof-i TCP:80
命令PID用户FD类型设备尺寸/关闭节点名称
httpd 281根目录3u IPv6 19479 0t0 TCP *:80(正在侦听)....
那就杀了httpd做你想做的事

gijlo24d

gijlo24d8#

如果你最近更新了软件,并且重命名或删除了/etc/httpd/conf.d/ go中的任何默认文件,请查看那里,因为包管理器重新安装了它们,所以可能会有重复的指令。
在我的例子中,我用数字作为文件的前缀,这样我就可以控制加载顺序...但是操作系统更新重新安装了原始文件,所以我有两个文件带有“Listen 443”,这两个文件冲突,语法检查也没有发现。
(This时间我离开他们,但使他们空,以便冲突将显示在重新安装或更新)

相关问题