PHP Redis扩展无法加载的问题解决方法


Posted in PHP onAugust 22, 2019

最近在工作中需要使用PHP访问Redis,从https://github.com/phpredis/phpredis下载了phpredis,并且按照官方的说明进行了安装

phpize
./configure [--enable-redis-igbinary]
make && make install

但是在重启php-fpm的过程中,发生了如下的错误,redis.so无法载入

[root@brand009 modules]# /usr/sbin/php-fpm
/usr/sbin/php-fpm: /usr/lib64/libssl.so.10: no version information available (required by /usr/sbin/php-fpm)
/usr/sbin/php-fpm: /usr/lib64/libcrypto.so.10: no version information available (required by /usr/sbin/php-fpm)
/usr/sbin/php-fpm: /usr/lib64/libcrypto.so.10: no version information available (required by /usr/sbin/php-fpm)
[29-Jun-2015 11:14:43] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/redis.so' - /usr/lib64/php/modules/redis.so: undefined symbol: zend_new_interned_string in Unknown on line 0
<br />
<b>Warning</b>: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/redis.so' - /usr/lib64/php/modules/redis.so: undefined symbol: zend_new_interned_string in <b>Unknown</b> on line <b>0</b><br />
<br />

试了网上一些解决方案,均无法解决问题。

实在没别的办法,于是打算重装php-fpm试试,遂去http://php-fpm.org/download/想下载个新版本的php-fpm,结果发现版本大于5.3.3的PHP内部已经集成了php-fpm,不用再另行安装了。

PHP Redis扩展无法加载的问题解决方法

于是用php --version查询了一下PHP的版本,已经是5.6.6了,

php --version
PHP 5.6.6 (cli) (built: Mar 9 2015 13:27:38) 
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

突然恍然大悟,自己一直用的是安装在另一个目录的php-fpm,和PHP并不是配套的

查看这个php-fpm的版本,发现是5.3.3

$/usr/sbin/php-fpm -v
PHP 5.3.3 (fpm-fcgi) (built: Oct 30 2014 20:14:56)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

而PHP内部集成的php-fpm版本是5.6.6

$ /usr/local/php/sbin/php-fpm -v
PHP 5.6.6 (fpm-fcgi) (built: Mar 9 2015 13:27:55)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

用PHP内部集成的php-fpm重启,成功!

root   18442   1 0 17:36 ?    00:00:01 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
nobody  30640 18442 0 18:04 ?    00:00:02 php-fpm: pool www     
nobody  31156 18442 0 18:05 ?    00:00:02 php-fpm: pool www     
nobody  32424 18442 0 18:08 ?    00:00:02 php-fpm: pool www

所以粗心害死人啊,以后在安装程序的时候需要多加小心,尽量显式的标明软件的版本,这样就会少犯这样的错误,少走弯路了。

另外需要注意:

在php.ini中一定要配置extension_dir和extension,如:

extension_dir = "/usr/lib64/php/modules/"
extension=redis.so

phpredis编译出来的redis.so也需要拷贝到"/usr/lib64/php/modules/"中

"/etc/php.d/"中也要软连接redis.so,并且要创建一个redis.ini文件,内容如下:

$ cat /etc/php.d/redis.ini 
; Enable redis extension module
extension=redis.so

安装phpredis还可以通过命令

pecl install redis

以上就是本次介绍的全部知识点内容,感谢大家的阅读和对三水点靠木的支持。

PHP 相关文章推荐
php 8小时时间差的解决方法小结
Dec 22 PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
Oct 12 PHP
推荐5款跨平台的PHP编辑器
Dec 25 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
Aug 08 PHP
Thinkphp框架开发移动端接口(2)
Aug 18 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
Oct 25 PHP
Laravel中任务调度console使用方法小结
May 07 PHP
Laravel 5.4向IoC容器中添加自定义类的方法示例
Aug 15 PHP
基于PHP常用文件函数和目录函数整理
Aug 17 PHP
Ubuntu上安装yaf扩展的方法
Jan 29 PHP
Laravel重定向,a链接跳转,控制器跳转示例
Oct 22 PHP
phpQuery采集网页实现代码实例
Apr 02 PHP
PHP Primary script unknown 解决方法总结
Aug 22 #PHP
php用wangeditor3实现图片上传功能
Aug 22 #PHP
PHP生成zip压缩包的常用方法示例
Aug 22 #PHP
Laravel 实现数据软删除功能
Aug 21 #PHP
PHP针对redis常用操作实例详解
Aug 17 #PHP
php5.6.x到php7.0.x特性小结
Aug 17 #PHP
PHP中非常有用却鲜有人知的函数集锦
Aug 17 #PHP
You might like
PHP 日常开发小技巧
2009/09/23 PHP
PHP统计二维数组元素个数的方法
2013/11/12 PHP
彻底删除thinkphp3.1案例blog标签的方法
2014/12/05 PHP
php并发加锁示例
2016/10/17 PHP
php及codeigniter使用session-cookie的方法(详解)
2017/04/06 PHP
Javascript引用指针使用介绍
2012/11/07 Javascript
关于Javascript与iframe的那些事儿
2013/07/04 Javascript
jQuery+Ajax实现无刷新分页
2015/10/30 Javascript
JQuery PHP图片在线裁剪实例
2020/07/27 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
javascript过滤数组重复元素的实现方法
2017/05/03 Javascript
angularjs下拉框空白的解决办法
2017/06/20 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
JavaScript中的事件与异常捕获详析
2019/02/24 Javascript
详解Vue 如何监听Array的变化
2019/06/06 Javascript
Vue实现base64编码图片间的切换功能
2019/12/04 Javascript
构建一个JavaScript插件系统
2020/10/20 Javascript
原生jQuery实现只显示年份下拉框
2020/12/24 jQuery
[58:35]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
Python实现的金山快盘的签到程序
2013/01/17 Python
详解Python的Twisted框架中reactor事件管理器的用法
2016/05/25 Python
Python安装模块的常见问题及解决方法
2018/02/05 Python
对python中的argv和argc使用详解
2018/12/15 Python
Django JWT Token RestfulAPI用户认证详解
2019/01/23 Python
在Python 字典中一键对应多个值的实例
2019/02/03 Python
说说如何遍历Python列表的方法示例
2019/02/11 Python
pycharm下pyqt4安装及环境配置的教程
2020/04/24 Python
用python对oracle进行简单性能测试
2020/12/05 Python
商场促销活动方案
2014/02/08 职场文书
yy婚礼司仪主持词
2014/03/14 职场文书
yy生日主持词
2014/03/20 职场文书
高中军训的心得体会
2014/09/01 职场文书
2014年驾驶员工作总结
2014/11/18 职场文书
担保书格式范文
2015/09/22 职场文书
如何在CSS中绘制曲线图形及展示动画
2021/05/24 HTML / CSS
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript