Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中使用Solr_Php_Apache_Tomcat_Solr - Fatal编程技术网

在PHP中使用Solr

在PHP中使用Solr,php,apache,tomcat,solr,Php,Apache,Tomcat,Solr,我正在尝试将solr与php结合使用。我已经配置了solr应用程序,它运行良好。但是,我无法使用php与solr通信。我尝试了许多扩展:peclsolr、solrppc客户端和Solarium。然而,没有人能够ping我的solr服务器。所有这些,而我的solr服务器在localhost:8080/solr上可用。我用tomcat在windows上运行它。(我一直在检查我的tomcat和solr服务,当通过php ping时,它们已经启动并运行了) 我想我在这里犯了一些非常基本的错误。我的sol

我正在尝试将solr与php结合使用。我已经配置了solr应用程序,它运行良好。但是,我无法使用php与solr通信。我尝试了许多扩展:peclsolr、solrppc客户端和Solarium。然而,没有人能够ping我的solr服务器。所有这些,而我的solr服务器在localhost:8080/solr上可用。我用tomcat在windows上运行它。(我一直在检查我的tomcat和solr服务,当通过php ping时,它们已经启动并运行了)

我想我在这里犯了一些非常基本的错误。我的solr应用程序是否需要在xampp的htdocs中?因为我把它放在tomcat服务器的webapps文件夹中。我真的不明白这会有什么不同,因为我在solr php客户端中专门提供了ping的路径,如下所示:

 require_once( 'Apache/Solr/service.php' );


 $solr = new Apache_Solr_Service( 'localhost', '8080', '/solr' );
  var_dump($solr) ; 
  if ( ! $solr->ping() ) {
     echo 'Solr service not responding.';
      exit;
    }
我在运行此代码时收到“Solr服务未响应”消息。有什么建议吗

更新:我在引擎盖下寻找,发现为了获取内容,使用了以下php函数:file\u get\u contents
我进一步了解到,当通过URI定位文件时,可能会失败,因为出于安全考虑,许多服务器会阻止此命令。xampp也是这样吗?在我的本地机器上运行那是什么

试试这个,我希望它能对你有所帮助,它对我很有用

$solr = new Apache_Solr_Service( 'localhost', '8080', '/solr' );
  var_dump($solr) ; 
  if ( $solr->ping() ) {
     echo 'Solr Server Responding.';
      // your code
    }else{
      echo "Solr Server is not Running";
    }

只需从代码中删除
require_一次('Apache/Solr/service.php')这个

您无法ping您的solr服务器,因为您没有提到您的核心名称

require_once('Apache/Solr/Service.php');
$solr = new Apache_Solr_Service( 'localhost', '8080', '/solr/CORE_NAME' 
 );
var_dump($solr) ;
if ( ! $solr->ping() ) {
 echo 'Solr service not responding.';
  exit;
}
您只需添加核心名称

$solr = new Apache_Solr_Service( 'localhost', '8080', '/solr/CORE_NAME');

一旦您传递您创建的核心名称,它将开始为您工作。

Windows。然而,我认为这可能与这个问题有关:正如我刚才所观察到的,当我尝试以下操作时会抛出一个错误:localhost:8080/solr/admin/ping。请求处理程序出现了一些问题,请尝试使用内置的
curl
HTTP-client for PHP;这可能需要根据您的设置启用。这样行吗?我已经启用了旋度。但是我对它不是很精通。你能推荐一些代码来使用curl进行测试吗?我用curl解决了一些问题。有关此问题,请参阅我的编辑。还有一种方法可以将curl响应作为xml而不是长字符串获取吗?