Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

phpredis extension doesn't work, unable to load 'redis.so'

I installed nginx, php, php-fpm, php-pecl-redis by yum.

All of them work but the last one.

When I run /usr/sbin/php-fpm, I got this:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/redis.so' - /usr/lib/php/modules/redis.so: undefined symbol: igbinary_unserialize in Unknown on line 0

I don't know what igbnary_unserialize means and how to fix it.

I checked the redis.so file under right path. I add extension=redis.so to php.ini

PHP version: 5.3.3

PhpRedis version: 2.2.7

like image 677
pearzl Avatar asked Nov 30 '15 08:11

pearzl


5 Answers

I had the same issue. I'm on Ubuntu 16.04 LTS. Running sudo apt-get install php-igbinary resolved the issue for me. I have other issues, but that's what solved this one.

like image 61
Matthew Setter Avatar answered Nov 20 '22 11:11

Matthew Setter


For people who are upgrading their php from 7.0 to 7.4 like me, and not able to get php-redis working. These are the steps I used after following the answers above.

1) remove Redis

sudo apt purge php-redis

2) Install Igbinary

sudo apt-get install php-igbinary

3) Install php-redis again

sudo apt-get install php-redis

I did the steps above because it seems only php7.0 is recognising the php-redis install but not the currently enabled php7.4

I also recommend removing other versions of PHP if you have should your problem continue unsolved.

like image 39
Someone Special Avatar answered Nov 20 '22 13:11

Someone Special


Probably an issue with igbinary, is this installed? (try for example: cat /etc/php.d/igbinary.ini).

Here you can find and install igbinary

like image 2
Bob van Luijt Avatar answered Nov 20 '22 13:11

Bob van Luijt


Related to this bug https://bugs.launchpad.net/ubuntu/+source/php-redis/+bug/1762935

You should remove php-redis from packages: apt purge php-redis , and install it via pecl install redis

You should add "extension=redis.so" to php.ini

and remove redis from config.d in your php directory:

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

and

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

restart php fpm and you will see that problem solved

like image 2
James M Avatar answered Nov 20 '22 11:11

James M


On Ubuntu 20 and PHP 7.4 I did this and it worked :

sudo apt purge php-redis 

sudo apt  intall php-redis  php7.4-redis

TEST redis server :

$ php --ri redis
or 
$ redis-cli ping
$ redis-cli info stats
like image 1
Thoutmos Sanebankh Avatar answered Nov 20 '22 11:11

Thoutmos Sanebankh