2011-11-16 88 views
1

我试图加载PECL solr扩展。我曾尝试使用“pecl install solr”并下载并使用“phpize/configure/make”来安装它。在这两种情况下,扩展没有错误安装,但一个Apache重新启动(或在命令行下运行PHP时),此错误消息总是发出后:由于未定义符号,PECL solr未加载:curl_easy_getinfo

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的。所以对象不知道/usr/lib64/libcurl.so,即使我指定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,卷曲7.21.3。预先感谢任何帮助!

+0

是插件吗?或者,/usr/lib64/php/modules/solr.so确实存在且具有正确的权限? –

+0

运行“make test”关于本地生成的solr.so时,我收到了类似的消息,所以我认为这不相关。但是,它存在且具有与其他对象相同的权限。你是什​​么意思“是插件”? –

+0

“是插件”..一个Jocj,HD询问抱怨他的电脑无法工作的用户的第一个问题。首先我们明确最明显的原因...... 现在,你最近升级了PHP吗,你的phpize是正确的版本吗? –

回答

1

我找不出什么问题,因为我可以在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 install的它工作得很好。

-2

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

为了解决这个问题,只需创建一个名为/etc/php.d/solr.so文件,并添加其内容为:

;Enable the solr php extension 
extension=solr.so 

,然后只需重新加载Web服务器。它现在应该工作。

+0

您的解决方案似乎错误或不完整 – hgf

0

这意味着,它需要卷曲 安装的依赖关系如下所示:

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

我的解决办法是: 编辑: /etc/php.d/json.ini 并添加扩展= Solr的。所以这会导致在json扩展之后加载solr扩展,从而避免了json库的丢失。

Ej json.ini:

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