Under Construction Thumbnail

워드프레스 사이트를 비활성화하거나 유지보수 모드로 전환하는 방법

라이브 워드프레스 사이트를 업데이트하거나 개편하거나 수리해야 할 때, 방문자가 깨지거나 덜 된 페이지를 보면 안 됩니다. 유지보수 화면으로 공개 사이트를 잠시 가릴 수 있습니다. 먼저 백업을 만들고, 가능하면 스테이징 복사본에서 작업해 문제가 생겼을 때 되돌릴 길을 남겨 두세요.

중요: 워드프레스 코어는 wp-config.php에 WP_MAINTENANCE_MODE 상수를 제공하지 않습니다. define( 'WP_MAINTENANCE_MODE', true );를 넣어도 그 자체로는 아무 일도 하지 않으며 유지보수 페이지가 나타나지 않습니다. 예전 안내를 따라 그 줄을 넣었다면 안전하게 지워도 됩니다.

워드프레스 사이트를 유지보수 모드로 전환하는 방법

워드프레스에는 업데이트 중에 동작하는 실제 자동 유지보수 모드가 있지만, 그 모드는 일시적일 뿐입니다. 몇 분보다 길게 이어지는 예정 작업에는 워드프레스.org의 유지 관리되는 플러그인을 쓰거나, 플러그인을 쓸 수 없다면 차일드 테마에 짧게 넣었다가 지울 수 있는 코드를 사용하세요.

1. 권장: 유지보수 모드 플러그인 사용하기

초보자에게 가장 쉬운 방법은 공식 워드프레스 플러그인 디렉터리의 플러그인입니다. 오래 유지되어 온 선택지로 WebFactory의 Maintenance와 Themeisle의 LightStart(이전 이름 WP Maintenance Mode)가 있습니다. 설치하기 전에 현재 목록을 확인하고, 해당 플러그인 자체의 설정 화면을 따르세요. 버튼 이름은 버전마다 달라질 수 있습니다.

워드프레스.org에 적힌 해당 플러그인 설치 안내를 바탕으로 한 일반적인 순서:

  1. 사이트를 백업하고, 가능하면 스테이징에서 테스트하세요.
  2. 관리자로 로그인한 상태를 유지하세요. wp-admin에서 플러그인 → 새로 추가로 이동해 플러그인 이름으로 검색한 뒤 설치하고 활성화합니다.
  3. 플러그인 설정 페이지를 엽니다. Maintenance는 관리자 주 메뉴에 항목을 추가하고, LightStart는 Settings 페이지를 사용합니다. 플러그인이 제공하는 컨트롤로 방문자에게 보일 메시지를 맞춤 설정하세요.
  4. 준비가 됐을 때만 유지보수 모드를 켜세요. LightStart 플러그인 목록에는 플러그인을 활성화하는 순간 사이트가 바로 유지보수 모드로 들어갈 수 있으며, 충분한 권한이 있는 사용자는 전면을 계속 볼 수 있다고 나와 있습니다.
  5. 작업이 끝나면 플러그인 설정에서 유지보수를 끄고, 페이지 캐시를 비운 다음, 로그아웃한 채 사생활 보호/시크릿 창에서 사이트를 열어 공개 페이지가 돌아왔는지 확인하세요. 그다음에야 더 이상 필요 없으면 플러그인을 비활성화하세요.

LightStart FAQ는 캐시 플러그인이 유지보수 중에 오래된 페이지를 보여줄 수 있다고 경고합니다. 캐시 플러그인을 켜 둔 상태라면 유지보수 모드를 켜거나 끈 뒤에 해당 캐시를 삭제하세요.

Maintenance 플러그인은 HTTP 503(«Service temporarily unavailable») 응답을 보내 검색 엔진이 중단을 일시적인 것으로 다루게 할 수 있습니다. 그 시간은 짧게 유지하세요. 긴 503은 사이트가 수집되는 방식에 여전히 영향을 줄 수 있습니다.

2. 업데이트 중에 워드프레스 자체가 하는 일

워드프레스가 코어, 테마, 플러그인을 업데이트할 때 워드프레스 루트에 .maintenance 파일을 잠시 만듭니다. 이 파일은 $upgrading 변수에 타임스탬프를 저장합니다. 코어는 그 타임스탬프가 약 10분 미만일 때만 사이트를 유지보수 모드로 봅니다. 대략 10분이 지나면 파일이 남아 있어도 워드프레스는 유지보수가 끝난 것으로 봅니다.

그 짧은 동안 워드프레스는 Retry-After: 600 헤더와 함께 HTTP 503을 보내고 “Briefly unavailable for scheduled maintenance. Check back in a minute.” 메시지를 보여 줍니다. wp-content 안에 maintenance.php라는 선택적 드롭인 파일로 그 짧은 화면을 바꿀 수 있지만, 이 파일은 코어 유지보수 모드가 실제로 켜져 있을 때만 적용됩니다.

직접 정적 .maintenance 파일을 만들어 ‘유지보수로 닫힘’을 오래 유지하는 스위치로 쓰지 마세요. 지속적인 수동 제어가 아닙니다. 약 10분이 지나면 방문자는 다시 라이브 사이트를 보게 되고, 실패한 업데이트 뒤에 남은 파일은 삭제할 때까지 혼란스러운 메시지를 남길 수 있습니다. 업데이트 후 유지보수 화면이 멈추면 FTP나 호스트 파일 관리자로 접속해 워드프레스 루트에서 .maintenance를 삭제하세요.

워드프레스는 이 동작을 wp_is_maintenance_mode(), wp_maintenance(), 멈춘 유지보수 화면에 대한 일반적인 워드프레스 오류 안내, 그리고 Updating WordPress에 문서화합니다.

3. 선택: 차일드 테마의 임시 코드

플러그인을 쓸 수 없다면 다음을 차일드 테마의 functions.php에 넣으세요. 업데이트로 덮어쓰이는 부모 테마에는 넣지 마세요. template_redirect 훅은 공개 사이트에서만 실행되므로 wp-admin과 로그인 화면은 계속 사용할 수 있습니다. 옵션을 관리할 수 있는 로그인 사용자는 사이트를 계속 봅니다. 그 외 방문자는 업데이트 중 워드프레스 코어가 쓰는 것과 같이 HTTP 503과 Retry-After 헤더를 받습니다. 공개 사이트를 되돌리려면 이 코드를 제거하세요.

add_action( 'template_redirect', function () {
    if ( is_user_logged_in() && current_user_can( 'manage_options' ) ) {
        return;
    }

    header( 'Retry-After: 3600' );
    wp_die(
        'This site is temporarily unavailable for scheduled maintenance. Please check back soon.',
        'Maintenance',
        array( 'response' => 503 )
    );
} );

짧고 임시적인 조치로만 쓰고, 먼저 스테이징에서 시험하세요. 코드를 제거한 뒤에는 캐시를 비우고, 로그아웃한 상태에서 공개 사이트가 다시 열리는지 확인하세요. 503 응답을 필요 이상으로 오래 남겨 두지 마세요.

정리

예정된 작업 동안 워드프레스 사이트를 가리려면 유지 관리되는 유지보수 플러그인을 사용하고, 끝나면 끈 다음 공개 페이지를 확인하세요. 워드프레스의 .maintenance 파일은 업데이트 중의 짧고 자동적인 보호막일 뿐이며 — 약 10분 — 오래 쓰는 수동 스위치가 아닙니다. wp-config.php에 넣을 WP_MAINTENANCE_MODE 줄도 없습니다. 먼저 백업하고, 중단 시간을 짧게 유지한 뒤, 라이브 사이트를 복구하고 확인하세요.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다