phprediss扩展无法正常工作,无法加载'redis.so'

时间:2015-11-30 08:12:23

标签: redis php-extension phpredis

我安装了nginx,php,php-fpm,php-pecl-redis。 所有这些都有效,但最后一个有效。

当我运行/usr/sbin/php-fpm时,我得到了这个:

  

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

我不知道“igbnary_unserialize”是什么意思以及如何修复它。

我检查了正确路径下的redis.so文件。 我将extension=redis.so添加到“php.ini”

php版本:5.3.3 phpredis版本:2.2.7

5 个答案:

答案 0 :(得分:13)

我有同样的问题。我在Ubuntu 16.04 LTS上。正在运行sudo apt-get install php-igbinary为我解决了这个问题。我还有其他问题,但是解决这个问题的是什么。

答案 1 :(得分:12)

对于像我这样将php从7.0升级到7.4且无法使php-redis正常工作的人。这些是我遵循上述答案后使用的步骤。

1)删除Redis

sudo apt purge php-redis

2)安装Igbinary

sudo apt-get install php-igbinary

3)再次安装php-redis

sudo apt-get install php-redis

我执行了上述步骤,因为似乎只有php7.0可以识别php-redis安装,但不能识别当前启用的php7.4

如果问题仍然存在,我还建议删除其他版本的PHP。

答案 2 :(得分:1)

可能是igbinary的一个问题,这是安装的吗? (例如:cat /etc/php.d/igbinary.ini)。

您可在此处找到并安装igbinary

答案 3 :(得分:0)

解决同样的问题:

由yum安装的php-pecl-redis会导致此问题。 所以你需要手动安装php-redis。 wget包和phpize - configure - make ....

答案 4 :(得分:0)

与该错误https://bugs.launchpad.net/ubuntu/+source/php-redis/+bug/1762935

有关

您应该从软件包中删除php-redis: apt purge php-redis,然后通过pecl install redis

安装

您应该在php.ini中添加“ extension = redis.so”

并从php目录中的config.d中删除redis:

rm /etc/php/7.2/fpm/conf.d/@20-redis.ini

rm /etc/php/7.2/cli/conf.d/@20-redis.ini

重新启动php fpm,您将看到问题已解决