I am having a problem with what appears to be redis.so. I keep getting this error in the terminal when I run certain commands:
PHP Warning: PHP Startup: Unable to load dynamic library ‘redis.so’ (tried: /usr/lib64/php/modules/redis.so (/usr/lib64/php/modules/redis.so: undefined symbol: igbinary_serialize), /usr/lib64/php/modules/redis.so.so (/usr/lib64/php/modules/redis.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
My system is Centos 8 with PHP 7.4.10, Apache and sqlite3. I have redis server and igbinary installed.
I have been through all search results to try and resolve the issue, but am not having any luck. I have remove extension=redis.io from php.ini, added 20-redis.ini to php.d
Any help troubleshooting this would be greatly appreciated!
I have the exact same issue on PHP 7.4.11 with Centos8 and NextCloud20.
Using php.d/20-redis.ini as well. On MariaDB instead of sqlite though. SELinux set to permissive.
Solved: it’s a race condition. The default install named igbinary at priority 40.
-rw-r–r--. 1 root root 293 Oct 8 22:40 40-igbinary.ini
To solve it:
sudo mv 20-redis.ini 50-redis.ini
This will ensure igbinary loads first and it is a prerequisite for redis
Thanks for the suggestion. I had both 20 and 50 priorities for redis. They were identical so I deleted the priority 20. I checked and igbinary is set at 40. I restarted the server and am still having the same problem.
What should I check next?
Most likely using the search function of this forum will provide an answer on your question, because it is asked at least once per week. Make sure that the php redis module and all it dependencies have correctly been installed.
Thank you, I went through everything again and found it was a priority issue. I originally started with a 20 and 50 redis. I didn’t realize that redis was also in php.ini. When I removed the 20 redis and commented out the enable redis in php.ini, it fixed the problem.
I have a follow on issue for which I will start a new thread.