当我尝试访问任何文件夹或文件时,我收到一个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
8条答案
按热度按时间hfsqlsce1#
在我的Mac与Mojave(10.14.1)突然Apache不能给服务ipv4了,然后给我错误403.我试图杀死所有的apache(sudo killall httpd)...检查de PID的(sudo lsof|grep放大器|grep apache)...甚至不工作...只有ipv6可用...仍然错误403。
对我有效的方法:禁用OSX的内置Apache服务器。
之后:
开心点:)
pprl5pva2#
这个帮助了我:
请编辑httpd.conf文件。
并更换
与
重新启动apache
4urapxun3#
有几件事可能会发生:
1.您运行的是不同版本的apache,可以通过运行
which apachectl
来确保使用的是正确的版本,例如,我还有两个版本的apache/usr/sbin/apachectl
和/usr/local/bin/apachectl
1.您没有以root身份运行
apachectl start
,尽管看起来您是这样。1.您可以运行
sudo lsof -i:80
来查看当前绑定该端口的内容cwxwcias4#
试试看
输出:tcp 6 0 0:::80:::* 监听1500/apache 2
8ehkhllq5#
这个错误发生是因为apache服务器在端口80中通过deault侦听,所以另一个服务或程序正在使用该端口,apache无法启动。
解决方案是确定什么程序或服务正在使用该端口,然后关闭、禁用或卸载它。
要标识,您可以运行netstat
或
在我的例子中,我同时安装了nginx和apache,并且都使用端口80。
**临时解决方案:**停止或终止服务、程序等。
永久解决方案:
1.在配置文件/etc/apache 2/apache2.conf中更改apache服务器的端口
1.卸载使用端口80的服务或程序。
在我的情况下,我需要这两个,所以我决定暂时修复它禁用服务与:
如果是服务,则使用kill命令。
bprjcwpo6#
我以前也是这样设置配置的,我上次升级OSX后也遇到了同样的问题。我试着在端口80或443上找到任何正在监听的东西,但在任何地方都找不到。我花了一段时间,但最终找到了另一篇文章,描述了一个实际有效的修复程序。请记住,我“我使用的是自制安装,并且已经卸载了MacOSX附带的默认apache 2安装。
下面是我以前在httpd.conf中的内容:
我在ssl.conf里也有类似的东西
我不得不修改我的httpd.conf文件,以使用localhost的服务器名,并侦听0.0.0.0:80,对于ssl.conf也是如此,但使用0.0.0.0:443 https
httpd.conf:
和ssl.conf
当我尝试重新启动它时,一切都很好。希望这能有所帮助!我想链接到这篇文章,但我很难再次找到它!
nszi6y057#
看起来httpd已经在运行了。要检查run
lsof-i TCP:80
命令PID用户FD类型设备尺寸/关闭节点名称
httpd 281根目录3u IPv6 19479 0t0 TCP *:80(正在侦听)....
那就杀了httpd做你想做的事
gijlo24d8#
如果你最近更新了软件,并且重命名或删除了/etc/httpd/conf.d/ go中的任何默认文件,请查看那里,因为包管理器重新安装了它们,所以可能会有重复的指令。
在我的例子中,我用数字作为文件的前缀,这样我就可以控制加载顺序...但是操作系统更新重新安装了原始文件,所以我有两个文件带有“Listen 443”,这两个文件冲突,语法检查也没有发现。
(This时间我离开他们,但使他们空,以便冲突将显示在重新安装或更新)