PHP警告:无法加载动态库'/usr/lib64/php/modules/solr.so' undefined symbol: php_json_decode_ex 在未知位置的第0行。

4
安装成功后,我遇到了以下错误。
 NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/solr.so' - /usr/lib64/php/modules/solr.so: undefined symbol: php_json_decode_ex in Unknown on line 0

有人能帮我解决这个问题吗?

我的服务器详情如下:

php : PHP 5.4.16 (cli) (built: Aug 11 2016 21:24:59) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0,版权所有(C)1998-2013 Zend Technologies

nginx: nginx版本:nginx/1.10.1

当我执行php -v命令时,

我得到以下消息:

PHP警告:PHP启动:无法加载动态库'/usr/lib64/php/modules/solr.so' - /usr/lib64/php/modules/solr.so: undefined symbol: php_json_decode_ex in Unknown on line 0

PHP 5.4.16 (cli) (built: Aug 11 2016 21:24:59) Copyright (c) 1997-2013 The PHP Group

Zend Engine v2.4.0,版权所有(C)1998-2013 Zend Technologies


请查看此链接,可能会有所帮助:http://stackoverflow.com/questions/8157709/pecl-solr-not-loading-due-to-undefined-symbol-curl-easy-getinfo - Himanshu Sharma
@HimanshuSharma 谢谢你的链接,但是正如你所看到的我的回答,我已经解决了我的问题。 - vijaybir singh
2个回答

6

经过多次实验,我最终解决了这个问题。解决方案如下:

cd /etc/php.d/

请创建一个名为solr.ini的文件。
在其中添加这行内容:
extension=solr.so

现在我需要从php.ini文件中删除上述扩展并重新启动php-fpm

这就是全部,对我而言有效。


2

仍然存在错误。意识到需要在json.so之后加载solr.so,以便在加载solr之前将json符号加载到内存中,否则solr无法加载。

在Centos和Red Hat Enterprise Server上,只需在/etc/php.d中的编号ini文件中为solr提供最高的数字即可。您可能只需要使其在json.ini之后加载,但我将其加载到最后,现在它可以正常工作了。我将其命名为60-solr.ini并开始工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接