Здравствуйте. Возникла проблема при связке Sphinx + php Из консоли поиск по ключевику идет, а вот php выдает ошибку. Благодарен любому совету! Конфиг сфинкса: Код: source src1 { type = mysql sql_host = localhost sql_user = user sql_pass = pass sql_db = db sql_port = 3306 sql_query_pre = SET NAMES utf8 sql_query_pre = SET CHARACTER SET utf8 sql_query = SELECT product_id, name FROM oc_product_description sql_attr_uint = product_id } index test1 { source = src1 path = /var/lib/sphinxsearch/data/test1 charset_type = utf-8 min_word_len = 3 morphology = stem_ru } indexer { # memory limit, in bytes, kiloytes (16384K) or megabytes (256M) # optional, default is 32M, max is 2047M, recommended is 256M to 1024M mem_limit = 256M } searchd { listen = 9312 listen = 9306:mysql41 log = /var/log/sphinxsearch/searchd.log query_log = /var/log/sphinxsearch/query.log read_timeout = 5 max_children = 30 pid_file = /var/run/sphinxsearch/searchd.pid max_matches = 1000 seamless_rotate = 1 preopen_indexes = 1 unlink_old = 1 binlog_path = /var/lib/sphinxsearch/data } Код php Код: // Создадим объект - клиент сфинкса и подключимся к нашей службе $cl = new SphinxClient(); $cl->SetServer( "localhost", 3312 ); // Собственно поиск $cl->SetMatchMode( SPH_MATCH_ANY ); // ищем хотя бы 1 слово из поисковой фразы $result = $cl->Query("перфо"); // поисковый запрос // обработка результатов запроса if ( $result === false ) { echo "Query failed: " . $cl->GetLastError() . ".\n"; // выводим ошибку если произошла } else { if ( $cl->GetLastWarning() ) { echo "WARNING: " . $cl->GetLastWarning() . " // выводим предупреждение если оно было"; } if ( ! empty($result["matches"]) ) { // если есть результаты поиска - обрабатываем их foreach ( $result["matches"] as $product => $info ) { echo $product . "<br />"; // просто выводим id найденных товаров } } } exit; Ошибка: Query failed: connection to 127.0.0.1:9312 failed (errno=111, msg=Connection refused).
PHP: $cl->SetServer( "localhost", 3312 ); ты ж ломишься на 3312, а сфинкс на другом порте. проверь что порты открыты. p.s. Так же, на сколько я помню у тебя был opencart, можешь посмотреть этот бесплатный модуль, как там сделано: https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=18266
Я пробовал все порты. В гугле 100500 мануалов. Но вы оказали правы! Порты были закрыты. Проблема решена! P.s. конечно еще день пришлось потратить на составление правильного конфига для адекватного поиска, но результат получен. Модуль не хочу использовать. opencart уже сильно изменен от оригинала. Хочу сам аккуратно с минимальным набором данных делать поиск.