PHP redis502 오류 문제를 해결하는 방법

藏色散人
풀어 주다: 2023-03-15 07:24:01
원래의
2156명이 탐색했습니다.

php redis502 오류 해결 방법: 1. "sudo apt-get install php5-redis"를 사용하거나 gitHub에서 phpredis를 다운로드합니다. 2. 다시 컴파일하고 설치합니다.

PHP redis502 오류 문제를 해결하는 방법

이 문서의 운영 환경: Windows 7 시스템, PHP 버전 5.5.30, DELL G3 컴퓨터

php redis502 오류 문제를 해결하는 방법은 무엇입니까?

php redis 설정으로 문제가 해결될 때 nginx 502

PHP Version 5.5.30-1+deb.sury.org~trusty+1 redis 3.0.1,
로그인 후 복사

pr.tar를 다운로드하면 gz 버전 2.10에서 설치되는 php-redis 확장 프로그램을 사용할 수 있습니다.

$redis->set('test', 'hello world')를 실행하고 nginx 502 오류를 보고합니다(nginx 502 오류는 정말 골치 아픈 문제입니다).

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

이유는 php-redis 확장 버전 2.10이 너무 낮기 때문입니다. sudo apt-get install php5-redis를 사용하거나 gitHub에서

https://github.com/phpredis/phpredis
로그인 후 복사

를 다운로드하고 컴파일하여 설치할 수 있습니다.

apt-get install 설치된 버전은 2.2.7입니다.

public function conn() {undefined try {undefined $this->_redis->pconnect($this->host, $this->port, $this->timeout); // Set client option. must AFTER connected //var_dump(Redis::OPT_SERIALIZER,Redis::SERIALIZER_PHP);exit(); $this->_redis->setOption(Redis::OPT_SERIALIZER,Redis::SERIALIZER_PHP); //$this->_redis->setOption(0, 0); $this->_redis->auth("xxxrs"); // 此处是为 redis 配置的验证密码 $this->connected = true; } catch (RedisException $e) {undefined throw new CHttpException(500, "Redis occurs an error:" . $e->getMessage()); } }
로그인 후 복사

빨간색 코드 부분을 사용하면 502에러가 발생하지만 녹색 코드 부분을 사용하면 문제가 없습니다. .

setOption 이게 이상한건가요? php-redis api를 확인했습니다

$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE); // don't serialize data 不序列化数据 $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP); // use built-in serialize/unserialize 用php内置的序列化 $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_IGBINARY); // use igBinary serialize/unserialize 用扩展IGBINARY序列化 $redis->setOption(Redis::OPT_PREFIX, 'myAppName:'); // use custom prefix on all keys redis key前缀 $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP); 用此就报502
로그인 후 복사

PHP에 내장된 직렬화를 사용할 때 왜 문제가 발생합니까? 무슨 일이에요?

나중에 IGBINARY 확장 프로그램을 설치했지만 여전히 작동하지 않았습니다. 마지막으로 php-redis 최신버전 2.24를 설치하고 다시 실행해 보았는데 전혀 문제가 없었습니다.

2.24 버전 php-redis 소스코드 주소 https://github.com/nicolasff/phpredis

==================== ===

Redis::__construct constructor

$redis = new Redis();

connect, 오픈 링크 redis service

parameters

host: 문자열, 서비스 주소

port: int, 포트 번호

timeout : 부동, 링크 기간(선택 사항, 기본값은 0, 링크 시간 제한 없음)

참고: redis.conf에도 시간이 있으며 기본값은 300

pconnect, 적극적으로 닫히지 않는 링크를 엽니다

위 내용을 참고하세요

setOption은 redis 모드를 설정합니다

getOption redis가 설정한 모드 보기

ping 연결 상태 보기

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP redis502 오류 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!