sphinx在shell可以正常使用,PHP使用出错

本人刚接触sphinx,不太懂,遇到问题记录一下。

在服务器shell里面调用sphinx查询可以正常返回数据

sphinx在shell可以正常使用,PHP使用出错

在PHP连接搜索数据时却返回false,PHP代码:

sphinx在shell可以正常使用,PHP使用出错

这是查询手册,发现获取错误信息的函数为:SphinxClient :: getLastError 

打印错误信息:failed to send client protocol version

然后在网上查找答案,有说是端口和配置文件不一致,有说是ip不对的,都未能解决问题。。。继续查找发现有人说用searchd --status查看一下进程状态;查询后返回:FATAL: failed to connect to daemon: please specify listen with sphinx protocol in your config file;这时发现可能是未启动sphinx;于是又重新输入./searchd命令启动(当前在sphinx/bin目录下);发现没有错误,但是继续返回PHP页面还是返回同样错误。。。此时想到了查看一下日志文件,打开searchd.log后发现存在启动错误:

FATAL: binlog meta file /usr/local/sphinx/var/data/binlog.meta is v.6, binary is v.4; recovery requires previous binary version

删除/usr/local/sphinx/var/data/binlog.meta后重新启动searchd解决问题