PHP警告:无法在第0行

时间:2016-12-09 04:15:01

标签: php linux nginx solr

安装成功后,我收到以下错误

 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)(建于2016年8月11日21:24:59) 版权所有(c)1997-2013 PHP小组 Zend Engine v2.4.0,版权所有(c)1998-2013 Zend Technologie

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)(建于2016年8月11日21:24:59) 版权所有(c)1997-2013 PHP小组

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

2 个答案:

答案 0 :(得分:3)

经过大量实验后,我终于解决了这个问题。解决方案如下:

cd /etc/php.d/

创建一个名为solr.ini的文件。

添加了这一行:

extension=solr.so

现在我必须从php.ini文件中删除上述扩展程序并重新启动php-fpm

这一切,对我有用。

答案 1 :(得分:0)

仍然出现错误。意识到您需要在json.so之后加载solr.so,因此json符号在加载solr之前就已存在于内存中,否则solr无法加载。

在centos和Red Hat Enterprise Server上,只需在/etc/php.d中已编号的ini文件中为solr提供最高的编号。您可能只需要在json.ini之后加载它,但是我最后一次加载它,现在它可以工作了。我将其命名为60-solr.ini,它开始工作。