我在 Mac OS X 10.7.4 上安装了 apache2苹果端口
最近我无法访问我的本地主机目录,出现 404,但我可以访问 127.0.0.1
我尝试过重新启动 apache:
sudo /opt/local/apache2/bin/apachectl stop
sudo /opt/local/apache2/bin/apachectl start
我收到以下错误:
(48)Address already in use: make_sock: could not bind to address [::]:80
(48)Address already in use: make_sock: could not bind to address [::]:443
我检查过 Web 共享已关闭。似乎 Apache 已在使用这些点,或者服务未正确停止。
我怎样才能知道正在使用这些端口?
答案1
“lsof” shell 命令可以准确地告诉你哪个进程正在使用系统中的哪些文件和套接字地址。只需尝试
sudo lsof
或者,由于输出会很多,更好
sudo lsof | less
并在 http 端口上查找一些东西。像往常一样
man lsof
将为您提供有关如何自定义输出的更多信息。
答案2
作为参考,在 Mountain Lion 10.8.2 中,只需停止 apache2 服务即可:
sudo apachectl stop
这样,httpd 进程就不会重新启动,并且 Macports apache2 服务器将会正常启动。
答案3
在我的 Mac 上,Mojave(10.14.1)突然间 Apache 无法再提供 IPv4 服务,然后出现错误 403。我尝试关闭所有 Apache(sudo killall httpd
)... 使用以下方法检查 PID:
sudo lsof | grep AMP | grep apache
甚至不起作用...只有 IPv6 可用...仍然是错误 403
对我有用的方法:禁用 macOS 的内置 Apache 服务器。
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
在那之后:
sudo apachectl -k restart
要开心 :)