PHP Warning: PHP Startup: Unable to load dynamic library ‘redis.so’
环境配置
##服务器centos8
##Apache:2.4
##redis:6.2
##phpredis:5.3
前提
##已安装软件所需扩展
##安装过程并无报错
##已经配置php.ini文件,最末行写入extension=redis.so
测试扩展是否成功运行
php -ri redis
##报错
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: php_json_decode_ex), /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
问题原因
##可能与扩展调用顺序有关,调用顺序的先后可能会影响扩展的正常运行
##可能是扩展路径的缘故,推荐使用绝对路径
##由于各软件版本不同,配置存在差异,不能按照老版本的配置步骤来配置
##配置冲突,可能安装时已经对扩展进行了配置,我们再配置就冲突了
解决方案
###只针对本章问题
#找到php.d扩展目录进入
cd php.d
#根据其中展示的扩展文件,创建redis扩展
vi 30-redis.ini
#写入下述代码
; Enable redis extension module
extension=redis
#保存退出,并删除之前在php.ini文件中写入的配置
最后重启服务,问题解决。
除PHP扩展外,例如Apache服务,也可以按照上述思路解决扩展问题。