개발 Q&A

제목 redis session 설정 질문 드립니다
카테고리 PHP
글쓴이 worldwar3 작성시각 2022/02/17 17:17:48
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 5983   RSS

안녕하세요, 

이번에 database 세션에서 redis 세션으로 변경하려고 하는데

제대로 동작하지 않아서 질문 드립니다.

 

 

일단 개발환경은 redis의 경우 네이버 클라우드 플랫폼에서 제공하는 서버를 사용하고,

phpredis 설치해서 테스트 코드로 데이터 입력/출력 되는 것까지 브라우저/서버 양쪽에서 모니터링 성공했는데요,

 

 

config에 설정 적용한 뒤 세션이 유지가 되지않아 에러로그 찍어보니

system/libralies/Session.php에서 sess_write가 동작하면서 쿼리 문법 오류가 발생하더군요

(sess_table_name이 없어서 발생한 걸로 보입니다.)

 

데이터베이스는 작성하지 않으니 해당 동작 하지않게 $config['sess_use_database'] = FALSE;

로 적용했더니 쿠키만 작성하고 redis 서버는 조회하지 않았습니다.

 

redis 서버 접속이나 조회가 실패하는 건가 싶어서

system/libralies/Session/drivers/Session_redis_driver.php에 로그 찍어서 테스트 해봤는데

아무 로그도 안 찍히는 것을 보니 애초에 해당 드라이버를 사용하지 않는 걸로 보입니다.

 

현재 ci 상에선 config 설정을 아래처럼 했는데

서버나 ini 파일에서 추가적으로 redis를 사용하도록 수정이 필요한걸까요?

$config['sess_driver'] = 'redis';

$config['sess_cookie_name'] = 'redis_';

$config['sess_expiration'] = 7200;

$config['sess_save_path'] = 'tcp://my-naver-redis-server:6379';

$config['sess_use_database'] = FALSE;

$config['sess_match_ip'] = FALSE;

$config['sess_time_to_update'] = 300;

$config['sess_regenerate_destroy'] = FALSE;

$config['sess_expire_on_close'] = TRUE;

$config['sess_encrypt_cookie'] = TRUE;

$config['sess_match_useragent'] = FALSE;

 

제가 미처 고려하지 못한 부분 있으면 지적 부탁드립니다.

감사합니다.

 다음글 form_validation 질문드립니다!! (2)
 이전글 우분투 apache2+svn 쓰기권한 문제.. (1)

댓글

테러보이 / 2022/02/18 13:16:02 / 추천 0

tcp://my-naver-redis-server:6379?database=1(또는 이름)

으로 해보세요.

ci4에서는 일단 정상 작동되네요