2016-04-24 29 views
0

今天我在我的Macbook上安裝了MarkLogic 8.05。爲了通過MarkLogic測試自定義網站,我創建了一個Http服務器。但是這個新的Http服務器不起作用。當我重新啓動時,出現以下錯誤:在MarkLogic 8下運行自定義Http服務器的問題

2016-04-24 22:18:26.945 Notice: Restarting by user request 
2016-04-24 22:18:27.035 Notice: Starting MarkLogic Server 8.0-5.1 x86_64 in /Users/henry/Library/MarkLogic with data in /Users/henry/Library/Application Support/MarkLogic/Data 
2016-04-24 22:18:27.040 Info: Host eowyn.local running Darwin 15.4.0 
2016-04-24 22:18:27.053 Info: SSL FIPS mode has been enabled 
2016-04-24 22:18:27.055 Critical: Server::updateConfigServers: SVC-SOCBIND: Socket bind error: bind 127.0.0.1:80: Permission denied 

我試圖啓動MarkLogic作爲sudo,但這也不起作用。

希望有人能幫助我或指引我正確的方向嗎?

我使用最新的更新運行Mac OS X El Capitan。

感謝,

亨利

回答

4

看起來像它與插座綁定到端口的問題。你嘗試過另一個端口嗎?嘗試一個尚未被使用的方法。我發現9100對我們來說是一個非常安全的端口。

3

我相信'低端口'(低於1024)仍然只允許被root啓動的進程綁定。因此,它可能是您嘗試用來啓動MarkLogic的用戶

3

您正嘗試綁定到端口80,該端口對於HTTP應用程序服務器來說非常流行。也許你已經有Apache HTTP服務器或類似的東西在運行。試試這個:

  1. 關閉MarkLogic
  2. 使用netstat(假設的Linux/Mac),即可看到任何東西是否還在偵聽端口80

的Netstat:

netstat -an | grep 80 

當我這樣做的端口8001與MarkLogic運行,我得到:

tcp4  0  0 *.8001     *.*     LISTEN 

最有可能的是,您會看到端口80上正在監聽端口。確定該端口已關閉,並且MarkLogic應能夠接管該端口。

2

要確定錯誤是一個競爭的過程或沒有權力運行ML爲根 (我測試通過運行Nginx的偵聽80)

如果您收到此錯誤:

2016-04- 25 10:28:40.534嚴重:服務器:: updateConfigServers:SVC-SOCBIND:套接字綁定錯誤:綁定0.0.0.0:80:地址已在使用

那麼它在端口80

運行作爲一個競爭的過程非根

2016年4月25日10:31:18.410嚴重:服務器:: updateConfigServers:SVC-SOCBIND:套接字綁定錯誤:綁定0.0.0.0:80:權限被拒絕

在這種情況下之前發生的權限錯誤使用中的地址錯誤。

如果問題是一個競爭的過程,你需要本地主機訪問(127.0.0.1),那麼你需要禁用的競爭過程(2個進程不能偵聽同一端口),或對其進行配置,使得一個偵聽127.0 .0.1,另一個在您的公共界面或另一個內部界面上。

如果您需要外部訪問只有這樣,你可以安排不同的(有點複雜)的方法,如使用端口轉發路由器管理此,在Mac相當於iptables的

https://serverfault.com/questions/102416/iptables-equivalent-for-mac-os-x HTTP代理(魷魚, ngnix ...)

-David