【发布时间】:2012-12-16 11:38:36
【问题描述】:
我正在尝试将 solr 与 php 一起使用。我已经配置了我的 solr 应用程序,它工作正常。但是我无法使用 php 与 solr 进行通信。我尝试了许多扩展:pecl-solr、solr-php-client 和 Solarium。然而,没有人能够 ping 我的 solr 服务器。所有这一切,而我的 solr 服务器在 localhost:8080/solr 可用。我正在使用 tomcat 在 Windows 上运行它。 (通过 php ping 时,我一直检查我的 tomcat 和 solr 服务,它们已启动并运行)
我认为我在这里做了一些非常基本的错误。我的 solr 应用程序是否需要在 xampp 的 htdocs 中?因为我将它放在我的 tomcat 服务器的 webapps 文件夹中。我真的不明白它会如何产生影响,因为我专门提供了在 solr-php-client 中 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_get_contents 我进一步了解到,当文件通过 URI 定位时,它可能会失败,因为许多服务器出于安全考虑阻止了此命令。 xampp 也是这样吗?在我的本地机器上运行是?
【问题讨论】:
-
视窗。我认为这可能与这个问题有关:stackoverflow.com/questions/12350606/…,因为我刚刚观察到当我尝试以下操作时会引发错误:localhost:8080/solr/admin/ping。请求处理程序似乎有些问题
-
尝试使用 PHP 内置的
curlHTTP 客户端;根据您的设置,可能需要启用。这行得通吗? -
我启用了 curl 。但是我并不精通它。你能推荐一些代码来使用和使用 curl 进行测试吗?
-
我设法使用 curl 计算出响应。有关问题,请参阅我的编辑。还有一种方法可以将 curl 响应作为 xml 而不是作为长字符串获取?