我正在尝试运行一个可以使用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
由于
答案 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。允许访问端口部分
感谢您的帮助!