2010-09-13 65 views
4

我安裝了MAMP(並且工作正常),然後嘗試通過macPorts安裝mongoDB。 macports然後開始安裝一堆依賴項。之後,http://localhost開始提供「It Works!」屏幕。在重新啓動以查看是否可以修復它之後,我發現我無法啓動我的MAMP服務器。控制檯說:我如何知道macPorts如何偷走我的端口:80?

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

「It Works!」來自apache(即你的MAMP安裝)。它必須已經運行 – Awalias 2013-05-14 09:30:08

回答

1

MongoDB port不安裝任何東西,將需要或使用端口80.它的任何依賴關係也沒有。此外,MacPorts端口在啓動時可以佔用端口80的唯一方法是安裝啓動守護進程,但MacPorts本身不會啓動任何啓動守護進程(您必須手動執行此操作)。

但是,你可以找出程序的特定端口上通過執行

$ lsof -i :<port> 

例如聽,

$ lsof -i :80 

會告訴你該程序偵聽端口80。這應該縮小下來抓住港口。

+0

沒有骰子。它只是顯示firefox,我正在使用它來試圖解決這個問題。 :( 我將代碼附加到我的主要問題,因爲該評論不支持代碼塊 – user446699 2010-09-13 20:23:01

+1

您需要'sudo'或lsof只顯示您的進程打開的文件 – 2010-09-15 02:08:07

16

從你描述的關於啓動錯誤和/private/etc/apache2/httpd.conf的描述來看,它聽起來像是安裝在基本操作系統上的Apache的副本被打開了。檢查系統首選項 - >服務 - > Web服務,並根據需要關閉它。如果它沒有打開那裏,嘗試:

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

...如果不工作,採取/庫查看/ LaunchDaemons,看看別的已安裝的是推出新的系統複製Apache(/ usr/sbin/httpd)。

+1

你是100%正確! (我知道我沒有),我現在覺得這麼愚蠢,現在在圈子裏跑來跑去,發現它是系統偏好設置中那個愚蠢的複選框Gordon Davisson,You Rock the kasbah! – user446699 2010-09-28 06:31:36

+0

Thanks @Gordon Davisson,「It works」令我困惑 - 你拯救了這一天! – 2014-01-17 07:50:08

1

確保你的httpd.conf文件正確。這意味着:沒有更多的1'聽80'。如果您有Listen 80(或任何端口)多於一次,則會觸發綁定錯誤。

我希望這是對你有用:)

3

在Max OS 10.1,山獅,對我關閉Apache的固定這個問題。

sudo apachectl stop 
1

OS X安裝了內置的apache webserver,它位於/ etc/apache2上。 消息「」它的作品!」不知怎的,Apache網絡服務器啓動時顯示。 下面是進程停止/啓動它。

sudo apachectl stop 
sudo apachectl start 

sudo的需要作爲Web服務器訪問端口80

1

如果某些服務定義它將監聽端口80,則launchd將在初始引導期間保留它,它可以是apache,但也可以是其他類型的。如果你沒有Apache,但有這個問題嘗試

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

它應該告訴你代理正在監聽端口80.卸載並重新啓動!

+0

這爲我解決了,我忘記了有關https://github.com/puma/puma-dev – 2018-02-07 10:08:10