[워드프레스] 『예약한 유지보수로 인해 사용할 수 없음』 오류를 해결하는 방법

오류 메세지 "예약한 유지보수로 인해 잠시 사용할 수 없습니다. 잠시 후에 다시 확인하세요"
오류 메세지 “예약한 유지보수로 인해 잠시 사용할 수 없습니다. 잠시 후에 다시 확인하세요"

워드프레스 블로그에 접속했을 때 '예약한 유지보수로 인해 잠시 사용할 수 없습니다. 잠시 후에 다시 확인하세요.’라고 쓰인 메시지만 표시되고 블로그에 접속이 안 되는 경우가 있습니다.

워드프레스에서는 이런 상태를, 영어로는 Maintenance Mode라고 하며 한국어로는 유지보수 모드 또는 유지 관리 모드라고 하는 듯합니다.
블로그나 사이트가 유지보수 모드가 되는 이유는, 워드프레스의 루트 폴더에 .maintenance라는 파일이 존재하고 있기 때문입니다.

업데이트 중 유지 관리 모드 ON / OFF
업데이트 중 유지 관리 모드 ON / OFF

워드프레스에서는 코어 파일, 테마, 플러그인 등의 업데이트를 시작하면 일시적으로 .maintenance 파일을 생성하고 유지보수 모드로 전환합니다.
그리고 정상적으로 업데이트가 완료되면, 생성된 .maintenance파일은 자동으로 삭제되고 유지보수 모드도 해제됩니다.
유지보수 모드가 시작되고 해제되는 데는 불과 몇 초 밖에 걸리지 않으며, 대부분의 사람들은 블로그가 유지보수 모드로 전환했었는지조차 알 수 없습니다.

관련 워드프레스 함수 : https://developer.wordpress.org/reference/functions/wp_is_maintenance_mode/

문제 해결하기

업데이트가 다 완료되었는데도 불구하고 위의 메시지가 표시된 채, 접속이 안되는 경우도 있습니다.

10분정도 기다리시면 저절로 해결될 가능성이 많지만, 해결이 안되거나 10분까지 못 기다리시는 분들은 수동으로 .maintenance 파일을 삭제해야 합니다.

.maintenance 파일 삭제

FTP 클라이언트를 사용해서 FTP 서버에 접속한 후, 워드프레스가 설치되어 있는 루트디렉토리로 이동합니다. 저는 파일질라를 사용합니다.

.maintenance 파일 삭제
.maintenance 파일 삭제

파일 목록에 .maintenance 파일이 있는지 확인하고 삭제합니다.
다른 설정 건드릴 필요없이 이렇게 파일을 삭제하는 것만으로 유지보수 모드가 해제되고 블로그의 정상적인 접속이 가능해집니다.

파일이 안 보일 경우

.maintenace.httaccess처럼 시스템 파일이라 숨김 파일로 되어 있습니다. 파일명 앞에 이 있다는 것은 대부분 숨김파일이라고 봐도 무방합니다.

파일질라 - 숨김파일 강제 표시
파일질라 – 숨김파일 강제 표시

사용하고 계신 소프트웨어의 [보기] 관련 설정에서 숨김파일 보이기가 체크되어 있는지 확인합니다. 파일질라는 [서버] 메뉴에 있습니다.

문제가 발생하는 원인

이런 일이 일어나는 경우는 크게 3가지가 있습니다.

  • 업데이트 중단
    업데이트 중에 인터넷 연결이 불안정하거나 끊겼을 경우
    업데이트 중에 브라우저를 닫아버림
    업데이트 중에 뒤로가기를 해버림
  • 대량 업데이트
    한 번에 많은 수의 플러그인이나 테마를 업데이트하게 되면 과부하가 걸려서 잠재적으로 중단될 수 있습니다.
  • 호환성 문제
    새로운 업데이트와 현재 설정 간의 호환성 문제로 인해 오류가 발생하여 업데이트 프로세스가 완료되지 않을 수 있습니다.

일부러 .maintenance 파일을 작성하는 경우

참고로 이 .maintenance 파일 안의 내용은 아래의 코드로 작성되어 있습니다.

<?php $upgrading = 1723799983; ?>

업데이트가 시작된 시간이 unix timestamp 형식으로 $upgrading라는 변수에 입력되고, 이 시간을 기점으로 10분 이상 경과되면 자동으로 해제되게 되어있습니다.
관련코드는 load.php에 기재되어 있습니다.

# file : /wp-includes/load.php의 일부

// If the $upgrading timestamp is older than 10 minutes, consider maintenance over.
if ( ( time() - $upgrading ) >= 10 * MINUTE_IN_SECONDS ) {
  return false;
}

어떤 이유가 있어서 일부러 10분 이상 유지보수 모드를 유지하고 싶은 경우가 있을 수 있습니다.

$upgrading 변수에 현재시간 대신 time()함수를 입력해 두면 시간을 자동으로 업데이트하게 되어, 유지보수 모드가 해제되는 것을 지연시킬 수 있습니다.

<?php $upgrading = time(); ?>

어떤 경우에 일부러 사용하는가?

블로그를 임시로 비공개로 설정해야 하는 경우가 생길 수 있습니다.
예를 들면

  • 블로그 스킨 수정 및 체크
  • 버그 수정
  • 기능 추가 및 테스트

등이 있습니다.

위의 작업을 하는 도중에 블로그에 접속한 방문객이 있다면 스킨이 깨지거나 기능이 오작동 할 가능성이 있습니다.

때문에 비교적 수십분 내로 간단하게 완료가 가능한 작업에서 사용하시는 것이 좋습니다. 그리고 작업이 끝나면 .maintenance파일을 반드시 삭제하셔야 합니다. 그렇지 않으면…. 음 아시죠?

방문객이 아직 적어서 별로 영향이 없다면 굳이 일부러 사용할 필요는 없습니다.

다만 임시방편일 뿐이니, 만약 몇 시간이나 며칠 이상 걸리는 경우라면 다른 방법으로 해야 합니다. 유지보수 모드는 장기적인 접속제한을 목적으로 만든 기능이 아닙니다.

정리

업데이트는 버그를 수정하거나 기능을 추가하거나 보안을 강화하는 것이 목적입니다. 그렇기 때문에 자동업데이트를 사용하거나, 수동으로 자주해주는 것이 좋습니다.
몇 달, 몇 년을 방치하다가 한 번에 업데이트를 하는 것은 바람직하지 않습니다.

읽어주셔서 감사합니다.

블로그

Posted by 요로코비