【问题标题】:fsockopen issue when opening port to sphinx only in php仅在 php 中打开 sphinx 端口时出现 fsockopen 问题
【发布时间】:2010-01-30 10:20:16
【问题描述】:

我在将 php 和只有 php 连接到 sphinx 守护程序时遇到问题。我已经测试了示例 sphinx php 示例 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. 可以在 sphinx api 中使用 test.py 连接 searchd
  4. php可以连接到80端口

它在 Westhost VPS 上运行,这似乎是个问题,因为它在我的本地测试机器上运行良好。我有现有的代码,它使用 Python 对索引运行搜索,没有任何问题,所以这个代码让我非常困惑。

一些附加信息,

PHP 5.2.5 Sphinx 0.9.9-release

有人知道如何进一步诊断和解决此问题吗?

【问题讨论】:

  • test.php和test.py是如何执行的?都来自 VPS 上的命令行?还是命令行中的 test.py 和 apache 进程中的 test.php?还是……?
  • 我已经从命令行测试了,从命令行测试了 test.php,也从 apache 进程中访问了网站。

标签: php sphinx fsockopen


【解决方案1】:

也许你可以使用cmd: netstat -an

要查看 ip:port 正在运行什么 Sphinx 服务器,然后在 fsocketopen() 函数中使用该 ip 和端口

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 2021-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多