그누보드5, 영카트5, 아미나, 나리야에서 redis 쿼리 캐시 플러그인 설치하기
컨텐츠 정보
- 8,097 조회
- 19 댓글
- 1 추천
- 목록
본문
위 링크에 있는 파일을 다운 받아야 쓸 수 있습니다.
1. redis 관련 패키지 설치하기
apt install redis-server
위 명령어로 레디스 서버를 설치합니다.
systemctl enable redis-server.service
위 명령어로 레디스 서버를 재부팅시에도 실행되게 합니다.
nano /etc/redis/redis.conf
위와 같이 레디스 설정에 들어갑니다.
maxmemory 256mb
maxmemory-policy allkeys-lru
위 2부분을 주석을 해제하고 수정을 해줍니다.
systemctl restart redis-server.service
위 명령어로 재실행 해줍니다.
apt install php-redis
위 명령어로 php와 연결해주는 패키지를 설치합니다.
php-7.4에서는 자동으로 붙네요.
2. php.ini 수정하기
/etc/php/7.4/fpm/php.ini
위 파일에서 1313번째 줄에 있는
session.save_handler = files
를
session.save_handler = redis
로 바꾸고
1342번째 줄에 있는
;session.save_path = "/var/lib/php/sessions"
를
session.save_path = "tcp://127.0.0.1:6379?weight=1"
로 바꾸면 됩니다.
그 후에
service php7.4-fpm restart
재시작 해주면 적용 끝입니다.
https://blog.lael.be/post/1494
라엘님 글을 참조하였습니다!
3. 테스트 해보기
redis-cli
위 명령어로 테스트해볼 수 있습니다.
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>
위와 같이 ping 명령어를 넣으면 PONG이라고 답변이 오면 정상설치된 것입니다.
4. 적용하기
링크에서 받은 파일을 압축 해제 후 그누보드 루트에 덮어 씁니다.
그리고 그누 루트에 있는 redis_test.php 을 열어서
//이미 redis 객체를 만든경우에는 기존 객체를 사용합니다. 아래 주석을 해제후 디버깅 정보를 확인해보세요.
$redis = new Redis();
$redis->connect("127.0.0.1", 6379, 1000);
위와 같이 주석을 해제 후 저장합니다.
그누 루트의 common.php
대략 206번째 줄에 있는 그누보드 세션 저장 경로 부분을 수정
//session_save_path(G5_SESSION_PATH);
위와 같이 그누보드 세션 경로를 주석처리해주고
그 밑에
try {
$redis = new Redis();
$redis->connect("127.0.0.1", 6379, 5);
} catch( Exception $e) {
echo $e->getMessage();
}
위와 같이 추가 해줍니다.
홈페이지에 관리자로 로그인 한 뒤에
웹브라우저에서 홈페이지/redis_test.php 열어보면
Array
(
[0] => DEBUG 2020-05-17 19:00:18 [RedisCache::__construct()] 기존 redis 객체를 사용합니다.
[1] => DEBUG 2020-05-17 19:00:18 [RedisCache::get_query_cache()] cache_exist = 1, ttl=4
[2] => DEBUG 2020-05-17 19:00:18 [RedisCache::get_query_cache()] cache_key = sql_cache:dcedd8971ac62ffc806dc24c8c9c6985 HIT!!!
[3] => DEBUG 2020-05-17 19:00:18 [RedisCache::get_query_cache()] exec_time = 0.001s
)
위와 같이 디버깅이 되는 것을 확인할 수 있습니다.
그리고 redis_test.php를 삭제합니다.
이제 세션을 redis 캐시를 사용함을 알 수 있습니다.
5. 옵션 : TCP port에서 Unix socket으로 변경
아미나의 Harry님 팁을 적용합니다. (유닉스 소켓이 더 낫다고 합니다.)
/lib/RedisCache.class.php
위 파일의 27번째 줄을 보면
$redis->connect($this->default_host, $this->default_port, 5);
위와 같은 내용이 있는데요.
$redis_socket = "/var/run/redis/redis.sock";
//$redis->connect($this->default_host, $this->default_port, 5);
$redis->connect($redis_socket); // Use Unix socket instead of TCP port
위와 같이 해당부분을 주석처리하고 위 아래에 유닉스 소켓으로 변경하시면 됩니다.
-
등록일 2020.10.10그누보드 SMTP 외부메일 설정하는 방법댓글 26
-
등록일 2020.10.03그누보드5에 실시간 채팅 구축하기댓글 13
-
등록일 2020.09.26
-
등록일 2020.09.24도커로 메일서버 구축하기댓글 4
관련자료
-
서명우성짱의 NAS를 운영하고 있습니다.
저의 즐거움이 여러분의 즐거움이면 좋겠습니다.
-
링크
popori님의 댓글
그런데, 그누의 comon.php에 적용을 하니 HTTP ERROR 500 에러가 뜨고 홈페이지가 먹통이 됩니다.
우분투20.04에 php8.2 환경입니다.
그누보드 버전은 5.5.10 입니다.
혹 링크의 첨부파일을 수정해야 하나요?
6379 포트를 사용하는거 같아서 해당 포트를 열어줘도 홈페이지가 먹통이 됩니다.
popori님의 댓글의 댓글
그리고 관리자로 로그인 후에 redis_test.php에 접속을 하니 우성군님하고는 다르게 아래와 같은 화면이 보입니다.
Array
(
[0] => Array
(
[bo_table] => free
[gr_id] => community
[bo_subject] => 자유게시판
[bo_mobile_subject] =>
... ...