2016-04-24 33 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