【问题标题】:Solr-php-client issueSolr-php-client 问题
【发布时间】:2011-05-05 14:12:28
【问题描述】:

我正在尝试运行一个可以使用 solr-php-client 访问 solr 索引的脚本。脚本在Apache_Solr_Service 类的 ping 函数内停止。

然后我尝试这样做:

echo file_get_contents('http://localhost:8983/solr/admin/ping');

什么也没得到——空白页。但是字符串 http://localhost:8983/solr/admin/ping 可以正常工作,因为它应该抛出浏览器地址栏。

有人可以就此提出建议吗?

附加信息:apache 2.2.3、CentOS 5.5、php 5.1.6、Solr 1.4.1

谢谢

【问题讨论】:

  • 你是否从 php.ini 开启了allow_url_fopen 设置?
  • Apache/PHP 和 Solr 在同一台机器上运行,对吧?
  • 完全没有错误:127.0.0.1:8983/solr/admin/ping");
  • 停下! ini_set(xxx) 允许显示消息:无法打开流:第 4 行 /var/www/html/index.php 中的权限被拒绝
  • 第 4 行:echo file_get_contents("127.0.0.1:8983/solr/admin/ping");

标签: php solr


【解决方案1】:

试试

echo file_get_contents('http://127.0.0.1:8983/solr/admin/ping');

好的,试试:

<?php

  $curl_handle=curl_init();
  curl_setopt($curl_handle,CURLOPT_URL,'http://localhost:8983/solr/admin/ping');
  curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
  $buffer = curl_exec($curl_handle);
  curl_close($curl_handle);

  echo $buffer;

?>

【讨论】:

    【解决方案2】:

    我找到了解决办法:

    semanage port -a -t http_port_t -p tcp 8983
    

    检查这个:http://wiki.centos.org/HowTos/SELinux -- 见 5.4。允许访问端口部分

    感谢您的帮助!

    【讨论】:

      【解决方案3】:

      或者,简单地说,只需在您的网址后添加一个尾部正斜杠,如下所示:

      echo file_get_contents('http://localhost:8983/solr/admin/ping/');
      

      或者只是确保您没有在多核模式下运行。在这种情况下,您需要像这样在管理员之前指定核心的名称

      echo file_get_contents('http://localhost:8983/solr/CORE_NAME/admin/ping/');
      

      第一个选项应该适合你。

      还要注意托管代码的位置。它应该在那个“localhost”上,否则将 solr 列为公共 IP 并使用 php-solr-client 访问该 IP。

      【讨论】:

        猜你喜欢
        • 2018-06-05
        • 1970-01-01
        • 1970-01-01
        • 2014-04-02
        • 1970-01-01
        • 2014-10-18
        • 1970-01-01
        • 2012-12-15
        • 1970-01-01
        相关资源
        最近更新 更多