fsockopen проблема при открытии порта для sphinx только в php - PullRequest
1 голос
/ 30 января 2010

У меня проблема при подключении php и только php к демону sphinx. Я протестировал пример sphinx php example test.php и сузил его до проблемы с подключением.

У меня есть следующий фрагмент кода, который показывает проблему,

<?php
$fp = @fsockopen ( '127.0.0.1', '9312', $errno, $errstr,300 );
if(!$fp) {
  echo "$errstr ($errno)";
}
?>

Всякий раз, когда он запускается из командной строки или браузера, я получаю следующую ошибку,

Connection refused (111)

Я подтвердил следующее,

  1. searchd действительно работает и через порт 9312
  2. SearchD может быть подключен с помощью Telnet
  3. searchd может быть подключен к использованию test.py в API sphinx
  4. PHP может подключиться к порту 80

Он работает на Westhost VPS, что, похоже, является проблемой, поскольку он отлично работает на моей локальной тестовой машине. У меня есть существующий код, который использовал Python для выполнения поиска по индексу без каких-либо проблем, так что этот код хорошо и по-настоящему озадачен.

Некоторая дополнительная информация,

PHP 5.2.5 Сфинкс 0.9.9-релиз

У кого-нибудь есть идеи, как я мог бы диагностировать и исправить эту проблему дальше?

1 Ответ

0 голосов
/ 23 апреля 2015

Может быть, вы могли бы использовать cmd: netstat -an

Чтобы увидеть, что ip:port работает Sphinx Server, используйте этот ip и порт в fsocketopen() function

...