상현에 하루하루
All 개발자의 하루

워드프레스 플러그인 없이 공사중 띄우기

( 업데이트: )

워드프레스 운영하면서 유지관리모드 우리가 익숙하게 알고있는 공사중 상태로 전환하거나 해야할 상황이 생깁니다.

아마도 웹사이트를 리뉴얼하거나, 테마를 변경하거나, 웹사이트의 새로운 기능이 추가될때 테스트를 할 수 있습니다. 이런 상황에는 웹사이트를 접속하는 유저들에게 유지 관리 모드로 전환하고 유저에게 웹사이트에서 무슨일이 일어나고있는지 공지하는 것이 좋습니다.

공지하지 않아도 테스트와 변경을 할 수 있다면 그것이 완벽한 정답이죠!

그래도 무중단 배포 테스트의 환경을 만들기에는 어려울 수 있기에 유지관리모드는 필요합니다.

워드프레스의 유지관리 모드를 사용하는 방법

유지 관리 모드를 사용하는 방법은 여러가지가 있고 저는 3가지 방법을 소개하고 그중에 플러그인을 사용하지 않는 방법을 자세하게 소개해 볼까합니다.

첫 번째로 워드프레스는 플러그인이 아주 활성화되어있는 생태계입니다. 유지관리 모드를 사용하는 방법중 가장 간단한 방법은 무료 및 프리미엄 플러그인을 사용하는 것입니다.

두번째는 플러그인을 사용하지 않고 .maintenance 파일을 이용하는 방법입니다. 워드프레스의 설치 루트 폴더(wp-settings.php 파일이 있는 폴더)에서 .maintenance 파일을 만듭니다.

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

위의 코드는 기본적으로 .maintenance 파일을 제거하기전까지 유지관리 페이지를 표시하게 합니다.

워드프레스가 기본적으로 제공하는 유지관리페이지는 투박합니다. 그래서 이 유지관리 페이지를 수정하겠습니다.

wp-content/maintenance.php 파일을 생성합니다.

<?php
$protocol = $_SERVER["SERVER_PROTOCOL"];
if ('HTTP/1.1' != $protocol && 'HTTP/1.0' != $protocol)
    $protocol = 'HTTP/1.0';
header("$protocol 503 Service Unavailable", true, 503);
header('Content-Type: text/html; charset=utf-8');
?>

<html>

<head>
</head>
<body>
  <h1>유지관리모드</h1>
</body>
</html>
<?php die(); ?>

이렇게하면 끝납니다. maintenance.php파일을 수정하고 css와 이미지를 추가하여 유지관리 모드페이지를 더 보기 좋게 만들 수 있습니다.