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设计模式 Composite (组合模式)
Jun 26 PHP
PHP对象转换为数组函数(递归方法)
Feb 04 PHP
360通用php防护代码(使用操作详解)
Jun 18 PHP
使用array mutisort 实现按某字段对数据排序
Jun 18 PHP
PHP字符串中特殊符号的过滤方法介绍
Feb 18 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
Mar 17 PHP
浅谈PHP的反射API
Feb 26 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
Dec 14 PHP
ThinkPHP中图片按比例切割的代码实例
Mar 08 PHP
YII2框架使用控制台命令的方法分析
Mar 18 PHP
详解phpstorm2020最新破解方法
Sep 17 PHP
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
Apr 11 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排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
ThinkPHP3.1查询语言详解
2014/06/19 PHP
PHP生成指定长度随机数最简洁的方法
2014/07/14 PHP
PHP实现的oracle分页函数实例
2016/01/25 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
2017/02/17 PHP
创建一个复制UBB软件信息的链接或按钮的js代码
2008/01/06 Javascript
基于jquery用于查询操作的实现代码
2010/05/10 Javascript
JS 无限级 Select效果实现代码(json格式)
2011/08/30 Javascript
Jquery选择子控件&quot;大于号&quot;和&quot; &quot;区别介绍及使用示例
2013/06/25 Javascript
js获取判断上传文件后缀名的示例代码
2014/02/19 Javascript
js中将String转换为number以便比较
2014/07/08 Javascript
javascript实现避免页面按钮重复提交
2015/01/08 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
JavaScript实现倒计时跳转页面功能【实用】
2016/12/13 Javascript
javascript 中模板方法单例的实现方法
2017/10/17 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
Linux Centos7.2下安装nodejs&amp;npm配置全局路径的教程
2018/05/15 NodeJs
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
用Python的urllib库提交WEB表单
2009/02/24 Python
分析Python编程时利用wxPython来支持多线程的方法
2015/04/07 Python
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
2017/10/01 Python
Python实现的tcp端口检测操作示例
2018/07/24 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
python__name__原理及用法详解
2019/11/02 Python
python实现mean-shift聚类算法
2020/06/10 Python
Html5页面在微信端的分享的实现方法
2018/08/30 HTML / CSS
自我鉴定的范文
2013/10/03 职场文书
建筑工程专业学生的自我评价
2013/12/25 职场文书
求职自荐信怎么写
2014/03/06 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
三八妇女节致辞
2015/07/31 职场文书
银行安全保卫工作总结
2015/08/10 职场文书
CSS3 制作的彩虹按钮样式
2021/04/11 HTML / CSS
python munch库的使用解析
2021/05/25 Python
Java面试题冲刺第十六天--消息队列
2021/08/07 面试题