0

0

记录php5.4与php-redis冲突的解决

php中文网

php中文网

发布时间:2016-06-21 08:48:50

|

1032人浏览过

|

来源于php中文网

原创

最近由于update了ubuntu的源,导致原来新源与本地系统库一些lib冲突,导致系统桌面显示异常,后来只有重装,新安装了php5.4.9,还安装了redis,php-redis扩展,php-redis扩展2,10。但把原来的项目一放上去,就报nginx 502错误(nginx 502错误真是个很头疼的问题)。打开nginx日志查看

 

立即学习PHP免费学习笔记(深入)”;

[error] 29229#0: *1403 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 127.0.0.1, server:

 

立即学习PHP免费学习笔记(深入)”;

不知道所云。后来打开php-fpm错误日志,得到的log日志

 

立即学习PHP免费学习笔记(深入)”;

[08-Oct-2013 21:22:23] WARNING: [pool www] child 12026 exited on signal 11 (SIGSEGV - core dumped) after 5.997917 seconds from start

 

立即学习PHP免费学习笔记(深入)”;

[08-Oct-2013 21:22:23] NOTICE: [pool www] child 12034 started

 

立即学习PHP免费学习笔记(深入)”;

可以确定的一点,是php-fpm在一个时间点后重启了一个进程。还是毫无头绪。在网上搜了一大遍,有个有用的跟踪方法。

 

立即学习PHP免费学习笔记(深入)”;

1、设置php-fpm,只起一个work进程

 

立即学习PHP免费学习笔记(深入)”;

2、重启php-fpm, 执行ps aux grep php-fpm 得到work进程号pid

 

立即学习PHP免费学习笔记(深入)”;

3、strace -p  pid 

 

立即学习PHP免费学习笔记(深入)”;

下面是我得到的信息

 

立即学习PHP免费学习笔记(深入)”;

getcwd("/home/www/wms2.xxxx.com", 4096) = 26

 

立即学习PHP免费学习笔记(深入)”;

lstat("/home/www/wms2.xiaomi.com/./RWebUser.php", 0x7ffff4e30a10) = -1 ENOENT (No such file or directory)

 

立即学习PHP免费学习笔记(深入)”;

lstat("/home/www/wms2.xiaomi.com/protected/vendor/wms/api/RWebUser.php", 0x7ffff4e30a10) = -1 ENOENT (No such file or directory)

 

立即学习PHP免费学习笔记(深入)”;

lstat("/home/www/wms2.xiaomi.com/protected/vendor/wms/RWebUser.php", 0x7ffff4e30a10) = -1 ENOENT (No such file or directory)

 

立即学习PHP免费学习笔记(深入)”;

lstat("/home/www/wms2.xiaomi.com/protected/extensions/log/RWebUser.php", 0x7ffff4e30a10) = -1 ENOENT (No such file or directory)

 

立即学习PHP免费学习笔记(深入)”;

lstat("/home/www/wms2.xiaomi.com/protected/modules/rights/components/RWebUser.php", {st_mode=S_IFREG0777, st_size=2945, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

lstat("/home/www/wms2.xiaomi.com/protected/modules/rights/components", {st_mode=S_IFDIR0777, st_size=4096, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

lstat("/home/www/wms2.xiaomi.com/protected/modules/rights", {st_mode=S_IFDIR0777, st_size=4096, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

lstat("/home/www/wms2.xiaomi.com/protected/modules", {st_mode=S_IFDIR0777, st_size=4096, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

open("/home/www/wms2.xiaomi.com/protected/modules/rights/components/RWebUser.php", O_RDONLY) = 5

 

立即学习PHP免费学习笔记(深入)”;

fstat(5, {st_mode=S_IFREG0777, st_size=2945, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

fstat(5, {st_mode=S_IFREG0777, st_size=2945, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

fstat(5, {st_mode=S_IFREG0777, st_size=2945, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

fstat(5, {st_mode=S_IFREG0777, st_size=2945, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

mmap(NULL, 2945, PROT_READ, MAP_SHARED, 5, 0) = 0x7fd9b4804000

 

立即学习PHP免费学习笔记(深入)”;

mmap(NULL, 266240, PROT_READPROT_WRITE, MAP_PRIVATEMAP_ANONYMOUS, -1, 0) = 0x7fd9b442f000

 

立即学习PHP免费学习笔记(深入)”;

munmap(0x7fd9b4804000, 2945)            = 0

 

立即学习PHP免费学习笔记(深入)”;

close(5)                                = 0

 

立即学习PHP免费学习笔记(深入)”;

getcwd("/home/www/wms2.xxx.com", 4096) = 26

 

立即学习PHP免费学习笔记(深入)”;

lstat("/home/www/wms2.xxx.com/./XMCCacheHttpSession.php", 0x7ffff4e31060) = -1 ENOENT (No such file or directory)

 

立即学习PHP免费学习笔记(深入)”;

lstat("/home/www/wms2.xxx.com/protected/vendor/wms/api/XMCCacheHttpSession.php", 0x7ffff4e31060) = -1 ENOENT (No such file or directory)

 

立即学习PHP免费学习笔记(深入)”;

lstat("/home/www/wms2.xxx.com/protected/vendor/wms/XMCCacheHttpSession.php", 0x7ffff4e31060) = -1 ENOENT (No such file or directory)

 

立即学习PHP免费学习笔记(深入)”;

lstat("/home/www/wms2.xxx.com/protected/extensions/log/XMCCacheHttpSession.php", 0x7ffff4e31060) = -1 ENOENT (No such file or directory)

 

立即学习PHP免费学习笔记(深入)”;

lstat("/home/www/wms2.xxx.com/protected/modules/rights/components/XMCCacheHttpSession.php", 0x7ffff4e31060) = -1 ENOENT (No such file or directory)

 

立即学习PHP免费学习笔记(深入)”;

lstat("/home/www/wms2.xxx.com/protected/modules/rights/XMCCacheHttpSession.php", 0x7ffff4e31060) = -1 ENOENT (No such file or directory)

 

立即学习PHP免费学习笔记(深入)”;

lstat("/home/www/wms2.xxx.com/protected/components/XMCCacheHttpSession.php", {st_mode=S_IFREG0777, st_size=2612, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

open("/home/www/wms2.xxx.com/protected/components/XMCCacheHttpSession.php", O_RDONLY) = 5

 

立即学习PHP免费学习笔记(深入)”;

fstat(5, {st_mode=S_IFREG0777, st_size=2612, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

fstat(5, {st_mode=S_IFREG0777, st_size=2612, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

fstat(5, {st_mode=S_IFREG0777, st_size=2612, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

fstat(5, {st_mode=S_IFREG0777, st_size=2612, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

mmap(NULL, 2612, PROT_READ, MAP_SHARED, 5, 0) = 0x7fd9b4804000

 

立即学习PHP免费学习笔记(深入)”;

munmap(0x7fd9b4804000, 2612)            = 0

 

立即学习PHP免费学习笔记(深入)”;

close(5)                                = 0

 

立即学习PHP免费学习笔记(深入)”;

sendto(4, "get 6cacd9674ad21aa083b5032b1a29"..., 39, MSG_DONTWAITMSG_NOSIGNAL, NULL, 0) = 39

 

立即学习PHP免费学习笔记(深入)”;

recvfrom(4, 0x2806d88, 8196, 64, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)

 

立即学习PHP免费学习笔记(深入)”;

poll([{fd=4, events=POLLIN}], 1, 5000)  = 1 ([{fd=4, revents=POLLIN}])

 

立即学习PHP免费学习笔记(深入)”;

recvfrom(4, "VALUE 6cacd9674ad21aa083b5032b1a"..., 8196, MSG_DONTWAIT, NULL, NULL) = 128

 

立即学习PHP免费学习笔记(深入)”;

lstat("/home/www/wms2.xxx.com/yii/web/CHttpCookie.php", {st_mode=S_IFREG0777, st_size=2772, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

lstat("/home/www/wms2.xxx.com/yii/web", {st_mode=S_IFDIR0777, st_size=4096, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

open("/home/www/wms2.xxx.com/yii/web/CHttpCookie.php", O_RDONLY) = 5

 

立即学习PHP免费学习笔记(深入)”;

fstat(5, {st_mode=S_IFREG0777, st_size=2772, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

fstat(5, {st_mode=S_IFREG0777, st_size=2772, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

fstat(5, {st_mode=S_IFREG0777, st_size=2772, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

fstat(5, {st_mode=S_IFREG0777, st_size=2772, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

mmap(NULL, 2772, PROT_READ, MAP_SHARED, 5, 0) = 0x7fd9b4804000

 

立即学习PHP免费学习笔记(深入)”;

munmap(0x7fd9b4804000, 2772)            = 0

 

立即学习PHP免费学习笔记(深入)”;

close(5)                                = 0

 

立即学习PHP免费学习笔记(深入)”;

stat("/home/www/wms2.xxx.com/protected/extensions/redis/XMRedis.php", {st_mode=S_IFREG0777, st_size=2672, ...}) = 0

腾讯智影-AI数字人
腾讯智影-AI数字人

基于AI数字人能力,实现7*24小时AI数字人直播带货,低成本实现直播业务快速增增,全天智能在线直播

下载

 

立即学习PHP免费学习笔记(深入)”;

lstat("/home/www/wms2.xxx.com/protected/extensions/redis/XMRedis.php", {st_mode=S_IFREG0777, st_size=2672, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

lstat("/home/www/wms2.xxx.com/protected/extensions/redis", {st_mode=S_IFDIR0777, st_size=4096, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

lstat("/home/www/wms2.xxx.com/protected/extensions", {st_mode=S_IFDIR0777, st_size=4096, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

open("/home/www/wms2.xxx.com/protected/extensions/redis/XMRedis.php", O_RDONLY) = 5

 

立即学习PHP免费学习笔记(深入)”;

fstat(5, {st_mode=S_IFREG0777, st_size=2672, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

fstat(5, {st_mode=S_IFREG0777, st_size=2672, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

fstat(5, {st_mode=S_IFREG0777, st_size=2672, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

fstat(5, {st_mode=S_IFREG0777, st_size=2672, ...}) = 0

 

立即学习PHP免费学习笔记(深入)”;

mmap(NULL, 2672, PROT_READ, MAP_SHARED, 5, 0) = 0x7fd9b4804000

 

立即学习PHP免费学习笔记(深入)”;

munmap(0x7fd9b4804000, 2672)            = 0

 

立即学习PHP免费学习笔记(深入)”;

close(5)                                = 0

 

立即学习PHP免费学习笔记(深入)”;

socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 5

 

立即学习PHP免费学习笔记(深入)”;

close(5)                                = 0

 

立即学习PHP免费学习笔记(深入)”;

socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 5

 

立即学习PHP免费学习笔记(深入)”;

fcntl(5, F_GETFL)                       = 0x2 (flags O_RDWR)

 

立即学习PHP免费学习笔记(深入)”;

fcntl(5, F_SETFL, O_RDWRO_NONBLOCK)    = 0

 

立即学习PHP免费学习笔记(深入)”;

connect(5, {sa_family=AF_INET, sin_port=htons(22122), sin_addr=inet_addr("10.237.36.231")}, 16) = -1 EINPROGRESS (Operation now in progress)

 

立即学习PHP免费学习笔记(深入)”;

poll([{fd=5, events=POLLINPOLLOUTPOLLERRPOLLHUP}], 1, 3000) = 1 ([{fd=5, revents=POLLOUT}])

 

立即学习PHP免费学习笔记(深入)”;

getsockopt(5, SOL_SOCKET, SO_ERROR, [0], [4]) = 0

 

立即学习PHP免费学习笔记(深入)”;

fcntl(5, F_SETFL, O_RDWR)               = 0

 

立即学习PHP免费学习笔记(深入)”;

setsockopt(5, SOL_TCP, TCP_NODELAY, [1], 4) = 0

 

立即学习PHP免费学习笔记(深入)”;

poll([{fd=5, events=POLLINPOLLPRIPOLLERRPOLLHUP}], 1, 0) = 0 (Timeout)

 

立即学习PHP免费学习笔记(深入)”;

sendto(5, "*2\r\n$4\r\nAUTH\r\n$9\r\nxm_wms_rs\r\n", 29, MSG_DONTWAIT, NULL, 0) = 29

 

立即学习PHP免费学习笔记(深入)”;

poll([{fd=5, events=POLLINPOLLPRIPOLLERRPOLLHUP}], 1, 0) = 0 (Timeout)

 

立即学习PHP免费学习笔记(深入)”;

poll([{fd=5, events=POLLINPOLLERRPOLLHUP}], 1, 3000) = 1 ([{fd=5, revents=POLLIN}])

 

立即学习PHP免费学习笔记(深入)”;

recvfrom(5, "+OK\r\n", 8192, MSG_DONTWAIT, NULL, NULL) = 5

 

立即学习PHP免费学习笔记(深入)”;

--- SIGSEGV (Segmentation fault) @ 0 (0) ---

 

立即学习PHP免费学习笔记(深入)”;

Process 6011 detached

 

立即学习PHP免费学习笔记(深入)”;

 

立即学习PHP免费学习笔记(深入)”;

可以看得出,在执行XMRedis后进程6011 就死掉了。基本可以定位是php-redis出了问题。

 

立即学习PHP免费学习笔记(深入)”;

继续追查最终发现了有段代码问题

 

立即学习PHP免费学习笔记(深入)”;

 

立即学习PHP免费学习笔记(深入)”;

 public function conn() {

 

立即学习PHP免费学习笔记(深入)”;

        try {

 

立即学习PHP免费学习笔记(深入)”;

            $this->_redis->pconnect($this->host, $this->port, $this->timeout);

 

立即学习PHP免费学习笔记(深入)”;

            // Set client option. must AFTER connected

 

立即学习PHP免费学习笔记(深入)”;

            //var_dump(Redis::OPT_SERIALIZER,Redis::SERIALIZER_PHP);exit();

 

立即学习PHP免费学习笔记(深入)”;

           $this->_redis->setOption(Redis::OPT_SERIALIZER,Redis::SERIALIZER_PHP);

 

立即学习PHP免费学习笔记(深入)”;

           //$this->_redis->setOption(0, 0);

 

立即学习PHP免费学习笔记(深入)”;

            $this->_redis->auth("xm_wms_rs");

 

立即学习PHP免费学习笔记(深入)”;

 

立即学习PHP免费学习笔记(深入)”;

            $this->connected = true;

 

立即学习PHP免费学习笔记(深入)”;

 

立即学习PHP免费学习笔记(深入)”;

        } catch (RedisException $e) {

 

立即学习PHP免费学习笔记(深入)”;

            throw new CHttpException(500, "Redis occurs an error:" . $e->getMessage());

 

立即学习PHP免费学习笔记(深入)”;

        }

 

立即学习PHP免费学习笔记(深入)”;

    }

 

立即学习PHP免费学习笔记(深入)”;

用红色的代码那段,就会报502错误,而用绿色代码这段就没问题。

 

立即学习PHP免费学习笔记(深入)”;

 

立即学习PHP免费学习笔记(深入)”;

setOption 这个是个神马东西呢?查了下php-redis api

 

立即学习PHP免费学习笔记(深入)”;

 

立即学习PHP免费学习笔记(深入)”;

$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE);   // don't serialize data  不序列化数据

 

立即学习PHP免费学习笔记(深入)”;

$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);    // use built-in serialize/unserialize  用php内置的序列化

 

立即学习PHP免费学习笔记(深入)”;

$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_IGBINARY);   // use igBinary serialize/unserialize 用扩展IGBINARY序列化

 

立即学习PHP免费学习笔记(深入)”;

$redis->setOption(Redis::OPT_PREFIX, 'myAppName:'); // use custom prefix on all keys redis key前缀

 

立即学习PHP免费学习笔记(深入)”;

 

立即学习PHP免费学习笔记(深入)”;

$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);  用此就报502

 

立即学习PHP免费学习笔记(深入)”;

为什么用php内置的序列化就会出错呢?到底发生了什么?

 

立即学习PHP免费学习笔记(深入)”;

后来又安装了IGBINARY 扩展,还是不行。最后把php-redis安装了最新的版本2.24,再运行,就完全没问题了。

 

立即学习PHP免费学习笔记(深入)”;



PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

1044

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

334

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

213

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

35

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

111

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

77

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

17

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

813

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

97

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 18.6万人学习

Pandas 教程
Pandas 教程

共15课时 | 1.1万人学习

C# 教程
C# 教程

共94课时 | 10.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号