当我尝试访问任何文件夹或文件时出现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
答案 0 :(得分:12)
在装有Mojave(10.14.1)的Mac中,突然之间Apache无法再提供ipv4了,然后给了我错误403。我试图杀死所有apache(sudo killall httpd)。 lsof | grep AMP | grep apache)...甚至不起作用...只是ipv6可用...仍然错误403。
最适合我的方法:禁用OSX的内置Apache服务器。
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
之后:
sudo apachectl -k restart
开心:)
答案 1 :(得分:9)
这个帮助了我:
请编辑 httpd.conf 文件。
/usr/local/etc/httpd/httpd.conf
并替换
Listen 80
与
Listen 127.0.0.1:80
重启apache
sudo apachectl -k restart
答案 2 :(得分:6)
可能发生的几件事之一:
which apachectl
来确保使用正确的密码。例如,我也有两个版本的Apache /usr/sbin/apachectl
和/usr/local/bin/apachectl
apachectl start
,尽管看来您是。sudo lsof -i:80
来查看当前绑定该端口的内容答案 3 :(得分:2)
我之前也以这种方式设置过我的配置,但在我上次升级 OSX 后遇到了同样的问题。我试图找到正在侦听端口 80 或 443 的任何东西,但在任何地方都找不到。我花了一段时间,但终于找到了另一篇文章,描述了一个实际有效的修复程序。请记住,我正在使用自制软件安装并卸载了 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
一旦我尝试重新开始,一切都很愉快。希望有帮助!我想链接到这篇文章,但我无法再次找到它!
答案 4 :(得分:0)
尝试
sudo netstat -ltnp | grep ':80'
输出:tcp6 0 0 ::: 80 ::: * LISTEN 1500 / apache2
sudo kill 1500
sudo service apache2 restart
答案 5 :(得分:0)
发生此错误的原因是,apache服务器在端口80上被默认监听,因此另一个服务或程序正在使用该端口,并且apache canot启动。
解决方案是确定正在使用哪个程序或服务的端口,然后关闭,禁用或取消安装它。
确定您可以运行netstat
year
或
sudo netstat -ltnp | grep ':80'
在我的情况下,我同时安装了nginx和apache,并且都使用端口80。
临时解决方案:停止或终止服务,程序等。
永久解决方案:
就我而言,我需要两者,所以我决定通过禁用服务来临时修复它:
sudo lsof -i:80
如果是服务,请使用kill命令。