WordPress Redis object cache 적용기
WordPress Redis object cache 적용기
워드프레스는 플러그인이 많아지거나, 스킨이 무거울 경우 속도가 많이 느려지는 경우가 있습니다. 제 블로그의 스킨도 무거운 편이고, 플러그인도 제법 많아 로딩 속도를 개선하기 위해서 Redis Object Cache를 적용해 보았습니다.
Redis 5.0.7 소스 설치 및 실행
wget http://download.redis.io/releases/redis-5.0.7.tar.gz tar zxvf redis-5.0.7.tar.gz cd redis-5.0.7 make
redis.conf 수정
redis가 host node의 메모리를 마구 가져다 쓰면 안되기 때문에 Max memory 값을 제한해 둡니다.
vi redis.conf maxmemory 256mb maxmemory-policy allkeys-lfu
호스트 노드의 메모리 여유분에 따라 max값을 조정해야 합니다.
redis 구동
src/redis-server &
레디스는 백그라운드 명령없이 구동하면 세션을 지속적으로 물고 있고, 세션이 끊어지면 redis 서버가 종료됩니다. &을 붙여 백그라운드 실행을 해줍니다.
php에 redis 모듈 연동
기존에 php7.3을 소스 설치하여 사용중이기 때문에 yum 으로 php-redis-perl 패키지 추가가 아닌 수동으로 컴파일 하였습니다.
wget https://github.com/nicolasff/phpredis/zipball/master -O phpredis.zip unzip phpredis.zip cd phpredis-phpredis-c3ca003/ $PHP_HOME/php/bin/phpize ./configure --with-php-config=<$PHP_HOME>/bin/php-config make && make install
$PHP_HOME은 php가 소스 설치되어 있는 경로 입니다. $PHP_HOME은 그대로 사용하면 안되고 본인의 php 설치 경로를 지정해야 합니다.
phpize를 먼저 실행 후 컴파일 해줍니다.
php/bin의 경로가 기본 경로가 아니기 때문에 –with-php-config 옵션을 추가 해주었습니다.
그리고 php.ini에 아래 내용을 추가 해줍니다.
vi php.ini [redis] extension=$PHP_HOME/lib/php/extensions/no-debug-non-zts-20180731/redis.so session.save_handler = redis session.save_path = "tcp://127.0.0.1:6379"
php를 재구동하기 전에 워드프레스 설정파일인 wp-config.php에 아래와 같은 내용을 추가 해줍니다.
define( 'WP_CACHE_KEY_SALT', 'rastalion.me' ); define( 'WP_CACHE', true );
rastalion.me 부분에는 적용 할 블로그의 도메인을 추가 하시면 됩니다.
그리고 php-fpm 재구동
systemctl restart php-fpm
플러그인 설치
워드프레스 플러그인에 Redis object cache를 검색해보면 바로 나옵니다. 설치 후 활성화하고 Setting을 눌러 enable 버튼을 누르면
Connected 상태로 나오는 것을 보니 정상적으로 캐시 적용이 되었습니다.
페이지 로딩 속도의 체감이 조금은 빨라진듯 한 기분(?)이네요.
FPM 재구동은 꼭 해줘야 하나요.. systemctl restart php-fpm
새로운 모듈이 적용이 됐기 때문에 재구동해줘야 합니다.