由于未定义的符号:curl_easy_getinfo, PECL solr无法加载


PECL solr not loading due to undefined symbol: curl_easy_getinfo

我正在尝试加载PECL solr扩展。我已经尝试安装它使用"pecl install solr",并通过下载和使用"phpize/configure/make"。在这两种情况下,扩展安装没有错误,但在apache重启后(或在命令行上运行php时),这个错误消息总是发出:

PHP Warning: Unable to load dynamic library /usr/lib64/php/modules/solr.so
 - /usr/lib64/php/modules/solr.so: undefined symbol:
 curl_easy_getinfo in Unknown on line 0

我检查了,似乎创建的solr。所以object不知道/usr/lib64/libcurl.因此,即使我指定了LDFLAGS -L/usr/lib64(尽管我不应该需要):

 # ldd modules/solr.so
       linux-vdso.so.1 =>  (0x00007fffd5af8000)
       libc.so.6 => /lib64/libc.so.6 (0x00007fac573c0000)
       /lib64/ld-linux-x86-64.so.2 (0x00000034bc000000)

我使用的是一个开箱即用的Fedora 15安装。我已经安装了许多其他PECL扩展没有问题。为什么这么难,更重要的是,我怎么能解决它?

我使用FC15, PHP 5.3.8, curl 7.21.3。提前感谢任何帮助!

我也不知道问题是什么,因为我能够在Fedora 16上通过pecl (phpize/configure/make/make install)进行编译。

首先确保你已经安装了libc compat:

compat-glibc.i386 : Compatibility C library
compat-glibc.x86_64 : Compatibility C library
compat-glibc-headers.x86_64 : Header files for development using standard C

一旦我安装了上面的包,我配置/make/make install,它工作正常。

我的方案是:编辑:/etc/php.d/json.ini并添加extension=solr。所以这会导致在json扩展之后加载solr扩展,避免json库丢失。

Ej json.ini:

;启用json扩展模块扩展= json.so扩展= solr.so

这意味着它需要curl按照如下方式安装依赖项:

sudo yum install libxml2-devel curl curl-devel php-curl

我遇到了一个类似的问题,并找到了一个解决方案。

要解决这个问题,只需创建一个名为/etc/php.d/solr.的文件然后将其内容添加为:
;Enable the solr php extension
extension=solr.so

,然后重新加载web服务器。