我安装了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
答案 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,您将看到问题已解决