5

在我的一些服务器上,执行 sphinx php 查询会返回该错误。搜索谷歌我找不到任何东西,除了这是错误出现的部分原因:

// send my version
    // this is a subtle part. we must do it before (!) reading back from searchd.
    // because otherwise under some conditions (reported on FreeBSD for instance)
    // TCP stack could throttle write-write-read pattern because of Nagle.
    if (!$this->Send($fp, pack('N', 1), 4))
    {
      fclose($fp);
      $this->error = 'failed to send client protocol version';
      return false;
    }

我发现的关闭是这个http://www.sphinxsearch.com/forum/view.html?id=4919

但我不知道 sphinxapi.php 在哪里(我使用手动编译安装)并且不确定这是否是个好主意。

有人有什么想法吗?

4

4 回答 4

9

我刚刚在我的服务器上遇到了同样的问题,我意识到我根本没有启动 searchd 守护进程。

希望这可以帮助

于 2010-02-01T10:50:24.810 回答
0

首先,请确保您为 api 库使用合适的 ip。你可以看到什么ip正在使用

sphinx.config 部分 searchd{}。

如果可以,下一步是查看 sphinx 状态

搜索--状态

于 2015-07-06T10:22:50.400 回答
0

问题可能出在错误的端口上。我设置了两个端口用于监听sphinx.config

searchd{
   listen = 9312
   listen = 9306:mysql41
}

当我尝试通过9306端口连接时,出现上述错误。改变它以9312解决问题。

于 2015-12-23T15:03:34.717 回答
0

我对 Sphinx 2.2.8 有同样的问题

我发现在这个版本中,searchd 配置中的侦听端口集已被删除,现在端口是

listening on all interfaces, port=9312
listening on all interfaces, port=9306

因此,当您配置 sphinx 客户端时,使用端口 9312 对我有用。IE:

$sphinxClient = new SphinxClient()
$sphinxClient->SetServer("localhost", 9312);

希望这对您有所帮助。如果您需要有关基本配置的更多详细信息,请询问我。

于 2016-01-07T10:33:56.680 回答