728x90
반응형
안녕하세요. 비버팩토리입니다.
세션을 디비에 저장하는 방법에 대해서 설명 합니다.
https://ciboard.co.kr/user_guide/kr/libraries/sessions.html#session-drivers
여기 참고하면 됩니다.
그리고 덧붙어서 설명하자면 아래 드라이버와 save_path를 ci_session 으로 수정하면됩니다.
씨아이 보드를 사용한다면 아래 처럼 그대로 따라하면됩니다.
$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'cb_session';
$config['sess_save_path'] = 'cb_session';
혹시나 기본적으로 파일경로로 수정한다면 아래 처럼 하면됩니다.
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_save_path'] = FCPATH.'upload/session/';
ci3에서는 경로를 좀 다르게 변경하고 싶다면 uploads/session/ 이렇게 변경해도 됩니다.
아래 경로 또한 퍼미션을 지정합니다.
mkdir /<path to your application directory>/sessions/
chmod 0700 /<path to your application directory>/sessions/
chown www-data /<path to your application directory>/sessions/
우선 경로가 잘 안잡히면 FCPATH 부터 디버깅해서 경로를 확인합니다.
$relative_path = str_replace('public/', '', FCPATH);
이 변수를 이용해서 경로를 잡아주면됩니다.
$config['sess_save_path'] = $relative_path.'upload/session/';
경로는 절대경로로 잡아줘야됩니다. 예시) /home/ciboard/..... 이렇게 전체적인 경로를 잡아주면 정상적으로 작동됩니다.
mysql 쿼리는 이렇습니다.
CREATE TABLE IF NOT EXISTS `ci_sessions` (
`id` varchar(128) NOT NULL,
`ip_address` varchar(45) NOT NULL,
`timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
`data` blob NOT NULL,
KEY `ci_sessions_timestamp` (`timestamp`)
);
// When sess_match_ip = TRUE
ALTER TABLE ci_sessions ADD PRIMARY KEY (id, ip_address);
// When sess_match_ip = FALSE
ALTER TABLE ci_sessions ADD PRIMARY KEY (id);
// To drop a previously created primary key (use when changing the setting)
ALTER TABLE ci_sessions DROP PRIMARY KEY;
여기서 아이피랑 매칭한다면 ip_address 까지 프라이머리 키를 설정합니다.
안한다면 id만 프라이머리 키 설정합니다.
만약에도 풀리지 않는다면 댓글 남겨주세요.
728x90
반응형
'it 언어 노트 > ci3' 카테고리의 다른 글
ci3 세션 사용법 (0) | 2024.08.23 |
---|---|
ci3 에서 캡쳐 혹은 이미지 썸네일 생성 할때 (0) | 2024.08.22 |
ci3 index.php 위치 변경 (0) | 2024.08.20 |
최신php 환경에서 ci3 오류 대처 방법 (0) | 2024.08.20 |
코드이그나이터3 참고자료 (0) | 2024.08.20 |