15

我通过yum安装了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:未定义符号:第 0 行未知中的 igbinary_unserialize

我不知道是什么igbnary_unserialize意思以及如何解决它。

我检查了redis.so正确路径下的文件。我添加extension=redis.sophp.ini

PHP版本:5.3.3

PhpRedis 版本:2.2.7

4

6 回答 6

33

我遇到过同样的问题。我在 Ubuntu 16.04 LTS 上。跑步sudo apt-get install php-igbinary为我解决了这个问题。我还有其他问题,但这就是解决这个问题的原因。

于 2017-05-19T07:36:46.183 回答
15

对于像我这样将 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。

于 2020-05-01T07:35:01.223 回答
2

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

您应该从 packages: 中删除 php-redis apt purge php-redis,并通过安装它pecl install redis

您应该将“extension=redis.so”添加到 php.ini

并从 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 你会看到问题解决了

于 2019-06-21T09:06:32.703 回答
2

可能是 igbinary 的问题,安装了吗?(例如尝试:)cat /etc/php.d/igbinary.ini

在这里你可以找到并安装igbinary

于 2015-11-30T11:02:40.660 回答
0

在 Ubuntu 20 和 PHP 7.4 上,我做到了这一点,并且成功了:

sudo apt purge php-redis 

sudo apt  intall php-redis  php7.4-redis

测试 redis 服务器:

$ php --ri redis
or 
$ redis-cli ping
$ redis-cli info stats
于 2022-01-07T04:57:37.617 回答
0

只需解决同样的问题:

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

于 2016-08-28T16:04:53.507 回答