我安装了MAMP(并且工作正常)然后我尝试通过macPorts安装mongoDB。然后macports开始安装一堆依赖项。在此之后,http://localhost开始提供“It Works!”屏幕。重新启动以查看它是否可以修复它,我发现我无法启动我的MAMP服务器。控制台说:
9/13/10 1:20:54 PM [0x0-0x12012].de.appsolute.MAMP[133] (48)Address already in use: make_sock: could not bind to address [::]:80
我知道macPorts做了些蠢事让我感到困惑。我怎样才能知道它偷了什么东西偷了端口:80?
这是我尝试过的一些命令:(:80没用,所以我只用了80)
$ sudo netstat -an | grep 80
Password:
tcp46 0 0 *.80 *.* LISTEN
udp6 0 0 fe80::21e:52ff:f.123 *.*
udp6 0 0 fe80::1%lo0.123 *.*
和
$ lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
firefox-b 451 biting_duck 39u IPv4 0x0ab806b0 0t0 TCP 192.168.0.198:49515->stackoverflow.com:http (ESTABLISHED)
firefox-b 451 biting_duck 40u IPv4 0x0ab87ec8 0t0 TCP 192.168.0.198:49517->sstatic.net:http (ESTABLISHED)
firefox-b 451 biting_duck 41u IPv4 0x0ab88aec 0t0 TCP 192.168.0.198:49516->pz-in-f95.1e100.net:http (ESTABLISHED)
firefox-b 451 biting_duck 42u IPv4 0x0ab97334 0t0 TCP 192.168.0.198:49518->sstatic.net:http (ESTABLISHED)
firefox-b 451 biting_duck 47u IPv4 0x0ab87abc 0t0 TCP 192.168.0.198:49519->sstatic.net:http (ESTABLISHED)
firefox-b 451 biting_duck 48u IPv4 0x0ab886e0 0t0 TCP 192.168.0.198:49520->sstatic.net:http (ESTABLISHED)
firefox-b 451 biting_duck 50u IPv4 0x0ab89b1c 0t0 TCP 192.168.0.198:49521->sstatic.net:http (ESTABLISHED)
firefox-b 451 biting_duck 51u IPv4 0x0ab86680 0t0 TCP 192.168.0.198:49522->peak-colo-196-216.peak.org:http (ESTABLISHED)
firefox-b 451 biting_duck 54u IPv4 0x0ab81ef8 0t0 TCP 192.168.0.198:49523->gravatar.com:http (ESTABLISHED)
firefox-b 451 biting_duck 55u IPv4 0x0ab82710 0t0 TCP 192.168.0.198:49524->gravatar.com:http (ESTABLISHED)
firefox-b 451 biting_duck 56u IPv4 0x0ab8a334 0t0 TCP 192.168.0.198:49526->64.34.80.176:http (ESTABLISHED)
firefox-b 451 biting_duck 57u IPv4 0x0ab812d4 0t0 TCP 192.168.0.198:49525->pv-in-f101.1e100.net:http (ESTABLISHED)
答案 0 :(得分:16)
根据您对launchd errors和/private/etc/apache2/httpd.conf的描述,听起来像安装了基本操作系统的Apache副本已经打开。检查系统偏好设置 - >服务 - > Web服务,如果需要,请将其关闭。如果它没有打开,请尝试:
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
...如果 不起作用,请查看/ Library / LaunchDaemons以查看是否安装了启动Apache系统副本的其他内容(/ usr / sbin /的httpd)。
答案 1 :(得分:3)
在Max OS 10.1上,Mountain Lion,关闭apache为我解决了这个问题。
sudo apachectl stop
答案 2 :(得分:1)
MongoDB port不会安装需要或使用端口80的任何内容。也不会安装任何依赖项。此外,MacPorts端口在启动时获取端口80的唯一方法是安装启动守护程序,但MacPorts不会自行激活任何启动守护程序(您必须手动执行)。
但是,您可以通过执行
找出正在侦听特定端口的程序$ lsof -i :<port>
例如,
$ lsof -i :80
将显示正在侦听端口80的程序。这应该缩小抓取端口的范围。
答案 3 :(得分:1)
确保您的httpd.conf文件正确无误。这意味着:不超过1'听80'。如果你有一次侦听80(或任何端口),这将触发绑定错误。
我希望这对你有用:)
答案 4 :(得分:1)
OS X安装了内置的apache webserver,它位于/ etc / apache2上。 当apache webserver以某种方式启动时,会显示消息“”It Works!“。 以下是停止/启动它的过程。
sudo apachectl stop
sudo apachectl start
需要sudo作为webserver访问端口80。
答案 5 :(得分:1)
如果某个服务定义它将侦听端口80,则launchd将在初始引导期间保留它。它可以是apache,但它也可以是其他东西。如果您没有apache,但遇到此问题请尝试
cd ~/Library/LaunchAgents
grep -R 80 .
cd /System/Library/LaunchDaemons
grep -R 80 .
它应该向您显示侦听端口80的代理。卸载并重新启动!