2010-02-01 4 views
5

На некоторых моих серверах выполнение sphinx php-запроса возвращает эту ошибку. Поиск в Google я не могу найти ничего, кроме этого является частью того, почему пришла ошибка из:sphinxsearch возвращает «не удалось отправить версию клиентского протокола»

// 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 является (Я установил с помощью ручного компиляции) и не уверен, что это хорошая идея.

У кого-нибудь есть идеи?

ответ

9

У меня была такая же проблема на моем сервере, и я понял, что я вообще не запускал демон searchd.

Надеется, что это помогает

0

Прежде всего делает Shure, что вы используете подходящий IP для библиотеки API. Опишите интересующий вас файл в этой группе:

страница с sphinx.config searchd {}.

Если это нормально, следующий шаг, чтобы увидеть Сфинкса Статус

SearchD --status

0

проблема может быть с неправильным портом. У меня было два порта, установленными для прослушивания в моих sphinx.config:

searchd{ 
    listen = 9312 
    listen = 9306:mysql41 
} 

Когда я попытался подключиться через порт 9306, я получил ошибку, упомянутую выше. Изменение его на 9312 решило проблему.

0

У меня такая же проблема с Sphinx 2.2.8

То, что я нашел в этой версии множество слушать порт в конфигурации Searchd был удален и теперь порты

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

Итак, когда вы настройте клиентский порт sphinx для использования 9312. То есть:

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

Надеюсь, это вам поможет. И если вам нужна дополнительная информация о базовой конфигурации, просто спросите меня.