PHP를 사용하여 Redis에 연결할 수 없습니다
P粉465287592
2023-09-01 15:37:59
<p>php를 사용하여 redis에 연결할 수 없습니다.
docker로 환경을 설정하고 php 및 redis 컨테이너를 사용하여 php에서 redis를 연결하려고 시도했지만 실패했습니다. 다음 오류가 발생합니다. </p>
<pre class="brush:php;toolbar:false;">PHP 경고: PHP 시작: 동적 라이브러리 'redis.so'를 로드할 수 없습니다(시도: /usr/lib/php/20190902/redis.so (/ usr/lib/php/20190902/redis.so: 정의되지 않은 기호: php_json_decode_ex), /usr/lib/php/20190902/redis.so.so (/usr/lib/php/20190902/redis.so.so: 열 수 없음 공유 객체 파일: 해당 파일이나 디렉터리가 없음)) 0행에 알 수 없음
PHP 공지: session_start(): 2행의 /var/www/html/index.php에서 session_id를 생성하는 동안 Redis를 사용할 수 없습니다.
PHP 경고: session_start(): 세션 데이터를 읽지 못했습니다: 2행의 /var/www/html/index.php에 있는 redis(경로: tcp://localhost:6379)
문자열(0) ""
save_handler=redis
save_path=tcp://localhost:6379
session_id=</pre>
<p>오류에 대한 응답으로 실행되는 PHP 파일입니다. </p>
<pre class="brush:php;toolbar:false;"><?php
세션_시작();
ini_set('session.cookie-domain', 'localhost');
var_dump(session_id());
echo "save_handler=" .ini_get("session.save_handler") .
echo "save_path=" .ini_get("session.save_path") .
echo "session_id=" . 세션_id() .
$_SESSION['libname'] = "PhpRedis";;
?></pre>
<p>php.ini 파일의 일부입니다. </p>
<pre class="brush:php;toolbar:false;">[세션]
; 데이터를 저장/검색하는 데 사용되는 핸들러.
; http://php.net/session.save-handler
session.save_handler = 레디스
session.save_path = "tcp://localhost:6379"
;redis 확장 모듈 확인
확장자=redis.so
; 기본 redis 시간 초과
redis.timeout = 5</pre>
<p>이 문제를 해결하는 데 필요한 정보가 누락된 경우 알려주시기 바랍니다. 미리 감사드립니다. </p>
<p>첨부파일:
ping을 입력하면 pong이 반환됩니다.
redis-cli를 사용하여 PHP 컨테이너에서 Redis에 연결할 수 있습니다. 또한 redis.so에 대한 경로는 다음과 같습니다.
<코드>~/usr/lib/php/20190902/redis.so</code>
php.ini 경로(사용된 서버는 apache2입니다).
<code>~/etc/php/7.4/apache2/php.ini</code></p>
무가 팀으로 활동하는지 확인해보세요
redis-cli ping
답변乒乓
PHP 구성에 Redis 확장에 대한 올바른 설정이 포함되어 있는지 확인하세요. 올바른 경로와 기타 필요한 구성은
php.ini
文件是否指定了redis.so
를 확인하세요.Php.ini 파일을 다음과 같이 조정했습니다.
으아악조정 전
조정 후
으아악감사합니다.