Solr-php-client问题

时间:2010-11-05 12:47:44

标签: php solr

我正在尝试运行一个可以使用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

由于

3 个答案:

答案 0 :(得分:1)

或者,简单地说,只需在您的网址后面添加一个正斜杠:

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。

答案 1 :(得分:0)

<击>尝试

<击>

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 :(得分:0)

我找到了解决方案:

semanage port -a -t http_port_t -p tcp 8983

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

感谢您的帮助!