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 相关文章推荐
mysql limit查询优化分析
Nov 12 PHP
php代码收集表单内容并写入文件的代码
Jan 29 PHP
ThinkPHP关联模型操作实例分析
Sep 23 PHP
smarty模板引擎从php中获取数据的方法
Jan 22 PHP
PHP微信开发之二维码生成类
Jun 26 PHP
php使用Session和文件统计在线人数
Jul 04 PHP
php函数连续调用实例分析
Jul 30 PHP
PHP的PDO操作简单示例
Mar 30 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
Oct 18 PHP
php实现数组纵向转横向并过滤重复值的方法分析
May 29 PHP
Laravel框架搜索分页功能示例
Feb 01 PHP
php 输出缓冲 Output Control用法实例详解
Mar 03 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
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
解析php中如何直接执行SHELL
2013/06/28 PHP
php遍历数组的4种方法总结
2014/07/05 PHP
详解PHP版本兼容之openssl调用参数
2018/07/25 PHP
如何在PHP环境中使用ProtoBuf数据格式
2020/06/19 PHP
safari,opera嵌入iframe页面cookie读取问题解决方法
2010/06/23 Javascript
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
jquery的Tooltip插件 qtip使用详细说明
2010/09/08 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
2013/11/22 Javascript
JavaScript按值删除数组元素的方法
2015/04/24 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
2015/12/02 Javascript
JQuery对ASP.NET MVC数据进行更新删除
2016/07/13 Javascript
Node.js中使用jQuery的做法
2016/08/17 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
2017/02/14 Javascript
详解win7 cmd执行vue不是内部命令的解决方法
2017/07/27 Javascript
分享vue.js devtools遇到一系列问题
2017/10/24 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
vue 判断页面是首次进入还是再次刷新的实例
2020/11/05 Javascript
python基础教程之缩进介绍
2014/08/29 Python
Python3实现并发检验代理池地址的方法
2016/09/18 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
python下载卫星云图合成gif的方法示例
2020/02/18 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
2020/04/22 Python
jupyter notebook中新建cell的方法与快捷键操作
2020/04/22 Python
YSL Beauty加拿大官方商城:圣罗兰美妆加拿大
2017/05/15 全球购物
学生自我评价范文
2014/02/02 职场文书
儿童生日会策划方案
2014/05/15 职场文书
卫生标语大全
2014/06/21 职场文书
《颐和园》教学反思
2016/02/19 职场文书
Python数据分析入门之教你怎么搭建环境
2021/05/13 Python
mysql数据库入门第一步之创建表
2021/05/14 MySQL
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
2021/06/23 Python
Python的三个重要函数详解
2022/01/18 Python
python实现学生信息管理系统(面向对象)
2022/06/05 Python
Win11怎么解除儿童账号限制?Win11解除微软儿童账号限制方法
2022/07/07 数码科技