이 글에서는 도커 환경에서 워드프레스와 Redis를 사용하여 객체 캐싱을 설정하는 과정에서 발생할 수 있는 흔한 오류에 대해 알아보고, 이를 해결하는 방법을 자세히 설명하도록 하겠다. 특히, Redis 서버가 연결 거부 오류를 일으킬 때 어떻게 대처해야 하는지에 초점을 맞출 것이다. 워드프레스 사용자들이 종종 겪는 이 문제를 효과적으로 해결하여 사이트의 성능을 개선할 수 있기를 바란다.
설치한 플러그인
Redis Object Cache
Redis Object Cache 오류 발생
도커 환경에서 워드프레스에 Redis Object Cache 플러그인을 설치한 후, Redis 서버에 연결할 수 없다는 오류가 발생한다. 오류 메시지는 다음과 같습니다.
Redis is unreachable: Connection refused [tcp://127.0.0.1:6379]
환경 설정 검토
docker ps -a
도커 컨테이너에서 Redis 서버의 상태를 확인합니다. 이는 컨테이너 ID, 이미지, 상태 등의 정보를 포함한 형식으로 검토할 수 있다.
CONTAINER ID | IMAGE | COMMAND | CREATED | STATUS | PORTS | NAMES |
---|---|---|---|---|---|---|
5235dcxxxxxx | redis:7 | “redis-server –maxm…” | 6 minutes ago | Up 6 minutes | 6379/tcp | mysite_redis |
wp-config.php
및 object-cache.php
파일에서 Redis 서버 설정을 검토합니다. 특히, 호스트 이름이 컨테이너의 이름과 일치하는지 확인한다.
문제 해결 방법
//wordpress/data/wp-config.php
define( 'WP_REDIS_HOST', 'mysite_redis' ); //redis의 도커 컨테이너 이름
define( 'WP_REDIS_PORT', 6379 );
wp-config.php
에서 위 내용을 복사 붙여넣기 한 후, mysite_redis 이 부분을 redis가 설치된 도커 컨테이너 이름을 적어준다. 그리고 저장한다.
이어서 관리화면을 새로고침 하면, 아래와 같이 Redis is unreachable: Connection refused [tcp://127.0.0.1:6379]이 문구가 사라지고, Enable Object Cache 버튼이 활성화 된 것을 확인할 수 있다.
Enable Object Cache 버튼을 누른다.
잠시 후, “There has been a critical error on this website.”라는 에러 문구가 뜨면서 치명적인 오류가 발생한다. 이 때부터는 관리자 화면, 사이트 화면 모두 이 에러화면이 뜬다.
처음에 당황했지만 에러 코드 확인 후, 아래 방법으로 에러를 해결할 수 있었다.
//wordpress/data/wp-content/object-cache.php
protected function build_parameters() {
$parameters = [
'scheme' => 'tcp',
'host' => '127.0.0.1',
'port' => 6379,
'database' => 0,
'timeout' => 1,
'read_timeout' => 1,
'retry_interval' => null,
'persistent' => false,
];
object-cache.php
파일에서 Redis 연결 설정을 도커 환경에 맞게 조정한다. 호스트를 127.0.0.1
에서 도커 컨테이너 이름으로 변경하면 에러 문제가 해결된다.
protected function build_parameters() {
$parameters = [
'scheme' => 'tcp',
'host' => 'mysite_redis', //redis의 도커 컨테이너 이름
'port' => 6379,
'database' => 0,
'timeout' => 1,
'read_timeout' => 1,
'retry_interval' => null,
'persistent' => false,
];
나가는 글
이 가이드를 통해 워드프레스 사용자들은 도커 환경에서 Redis를 효율적으로 설정하고 관리할 수 있을 것으로 생각한다. Redis Object Cache 플러그인은 워드프레스 사이트의 성능을 크게 향상시킬 수 있으므로, 설정 과정에서 발생할 수 있는 문제들을 잘 이해하고 해결하는 것이 중요하다. 이 문서가 그 과정에서 발생할 수 있는 일반적인 문제를 해결하는 데 도움이 되기를 바란다.