【问题标题】:How do I find out how macPorts stole my port:80?如何找出 macPorts 是如何窃取我的 port:80 的?
【发布时间】:2010-09-13 19:35:41
【问题描述】:

我安装了 MAMP(并且工作正常),然后我尝试通过 macPorts 安装 mongoDB。 macports 然后开始安装一堆依赖项。在那之后,http://localhost 开始给出“它有效!”屏幕。重新启动以查看是否可以修复它后,我发现我无法启动我的 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)

【问题讨论】:

  • “有效!”来自 apache(即您的 MAMP 安装)。它必须已经在运行

标签: macos macports mamp


【解决方案1】:

根据您对启动错误和 /private/etc/apache2/httpd.conf 的描述,听起来安装了基本操作系统的 Apache 副本已打开。检查系统偏好设置 -> 服务 -> Web 服务,如果需要,将其关闭。如果那里没有打开,请尝试:

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

...如果 那个 不起作用,请查看 /Library/LaunchDaemons 以查看是否安装了其他启动 Apache 系统副本的东西 (/usr/sbin/ httpd)。

【讨论】:

  • 你是 100% 正确的!一定是有什么东西打开了它(我知道我没有)。我现在感觉很愚蠢,在圈子里跑来跑去才发现这是系统偏好设置中的那个愚蠢的复选框。戈登戴维森,你摇滚 kasbah!
  • 感谢@Gordon Davisson,“它的工作原理”让我感到困惑——你拯救了这一天!
【解决方案2】:

在 Max OS 10.1、Mountain Lion 上,关闭 apache 为我解决了这个问题。

sudo apachectl stop

【讨论】:

    【解决方案3】:

    OS X 安装了内置的 apache 网络服务器,它位于 /etc/apache2。 当 apache 网络服务器以某种方式启动时,会显示消息“It Works!”。 以下是停止/启动它的过程。

    sudo apachectl stop
    sudo apachectl start
    

    需要 sudo 作为网络服务器访问端口 80。

    【讨论】:

      【解决方案4】:

      MongoDB port 不会安装任何需要或使用端口 80 的东西。它的任何依赖项也不会。此外,MacPorts 端口在启动时获取端口 80 的唯一方法是安装启动守护程序,但 MacPorts 不会自行激活任何启动守护程序(您必须手动执行此操作)。

      但是,您可以通过执行来找出正在侦听特定端口的程序

      $ lsof -i :<port>
      

      例如,

      $ lsof -i :80
      

      将向您显示在端口 80 上侦听的程序。这应该会缩小占用该端口的范围。

      【讨论】:

      • 没有骰子。它只显示 Firefox,我用它来尝试解决这个问题。 :( 我将代码附加到我的主要问题中,因为评论不支持代码块
      • 您需要 sudo 或 lsof 仅显示您的进程打开的文件。
      【解决方案5】:

      确保您的 httpd.conf 文件正确无误。这意味着:不超过 1 个“听 80 个”。如果您不止一次拥有 Listen 80(或任何端口),这将触发绑定错误。

      希望对你有用:)

      【讨论】:

        【解决方案6】:

        如果某些服务定义它将侦听端口 80,launchd 将在初始启动期间保留它。它可以是 apache,但也可以是其他东西。如果你没有apache,但是有这个问题试试

        cd ~/Library/LaunchAgents
        grep -R 80 .
        cd /System/Library/LaunchDaemons
        grep -R 80 .
        

        它应该向您显示监听端口 80 的代理。卸载并重新启动!

        【讨论】:

          猜你喜欢
          • 2011-02-10
          • 2020-09-05
          • 2013-11-04
          • 2016-09-28
          • 2015-11-16
          • 1970-01-01
          • 2011-04-25
          • 2011-06-05
          • 1970-01-01
          相关资源
          最近更新 更多