在MarkLogic 8

时间:2016-04-24 20:37:35

标签: marklogic

今天我在Macbook上安装了MarkLogic 8.05。为了通过MarkLogic测试自定义网站,我创建了一个Http Server。但是这个新的Http Server不起作用。当我重新启动时,我收到以下错误:

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 个答案:

答案 0 :(得分:4)

看起来套接字绑定到端口的问题。你有没有试过另一个端口尝试一下尚未使用的产品。我发现9100对我们来说是一个非常安全的端口。

答案 1 :(得分:3)

我认为'低端口'(低于1024)仍然只允许由root启动的进程绑定。因此,它可能是您尝试用于启动MarkLogic的用户

答案 2 :(得分:3)

您正在尝试绑定到端口80,这是HTTP应用服务器的常用端口。也许您已经有Apache HTTP服务器或类似的运行。试试这个:

  1. 关闭MarkLogic
  2. 使用netstat(假设Linux / Mac)查看是否有任何内容仍在侦听端口80.
  3. 用netstat:

    netstat -an | grep 80
    

    当我在运行MarkLogic的端口8001上执行此操作时,我得到:

    tcp4       0      0  *.8001                 *.*                    LISTEN 
    

    最有可能的是,你会看到某些东西已经在端口80上侦听。确定它,关闭它,MarkLogic应该能够接管该端口。

答案 3 :(得分:2)

确定错误是竞争过程还是没有权限以root身份运行ML (我通过运行监听80的nginx来测试)

如果您收到此错误:

2016-04-25 10:28:40.534严重:Server :: updateConfigServers:SVC-SOCBIND:套接字绑定错误:绑定0.0.0.0:80:地址已在使用中

然后是端口80上的竞争过程

以非root身份运行

2016-04-25 10:31:18.410严重:Server :: updateConfigServers:SVC-SOCBIND:套接字绑定错误:绑定0.0.0.0:80:权限被拒绝

在这种情况下,在使用地址错误之前发生权限错误。

如果问题是竞争过程并且您需要 localhost 访问(127.0.0.1),那么您需要禁用竞争过程(2个进程无法侦听同一端口)或配置它们以便一个侦听127.0.0.1,另一个侦听公共接口或其他内部接口。

如果您只需要外部访问权限,那么您可以安排使用各种(有点复杂的)方法管理它,例如使用端口转发路由器,Mac等效于iptables

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

-David