我正在尝试加载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服务器。