
나는 워드프레스에 글을 미리 작성해놓고 매일 하나씩 공개될 수 있게 예약을 걸어놓고 있다.
그런데 이게 뭐지, 호스팅 바꾼 후 갑자기 예약을 놓쳤습니다. 라고 나오는 것이다.
예약을 놓쳤습니다. 라고 나오는 글을 편집 들어가서 수동으로 공개를 하면 공개가 된다.
그렇지만 계속 이러니까 생각보다 많이 번거롭다.
예약을 놓쳤습니다.
워드프레스에 예약 해놓은 글을 시간이 되면 자동으로 공개하지 않고 ‘예약을 놓쳤습니다.’ 라고 표시가될 때 어떻게 하면 좋을지 방법을 알아보자.
시간대 설정
가장 먼저, 가장 간단한 워드프레스의 시간을 확인해보자.
관리자 대시보드 » 설정 » 일반 » 시간대 설정이 맞는지 확인하자.
만약 잘못되어 있다면 올바른 시간대로 변경하면 된다.
플러그인 확인
여러 플러그인이 서로 충돌할 수 있다.
최근에 설치하거나 업데이트한 플러그인이 있다면 비활성화 해보자.
나는 그냥 다 비활성화 했다.
관리자 대시보드 » 플러그인 으로 가서 비활성화할 수 있다.
위의 이미지는 네트워크에서 다 비활성화 했으나 사이트 대시보드에서도 비활성화 해야한다.
예약 작업 확인
워드프레스는 ‘크론’이라는 작업을 사용해서 예약된 글을 발행한다.
간단한 방법은 WP 크롤트롤(WP Crontrol)이라는 플러그인을 설치하여 예약된 작업을 확인하는 것이다.
웹호스팅에서 SSH를 열어놓았다면, WP-CLI를 설치해서 확인해볼 수도 있으나 번거롭다.
- WP 크론트롤 플러그인 설치
- 설치한 WP 크론트롤 플러그인 » 활성화 » 이벤트
- 표시한 부분에 오류 문구가 나오는지 확인
제대로 작동한다면, 다음 ‘서버 상태 확인’ 단계로 넘어가자.
만약 표시한 부분에 오류 문구가 발생되는 경우, 아래 단계를 따르자.- ‘하나 이상의 크론 이벤트가 일정을 놓쳤습니다.’
‘귀하의 사이트에서 WP-Cron 시스템에 대한 호출을 생성하는 중에 문제가 발생했습니다. 즉, 사이트의 WP-Cron 이벤트가 작동하지 않을 수 있습니다. 문제: 예기치 않은 HTTP 응답 코드: 403’ - .htaccess 파일 내용을 다시 기본 워드프레스 .htaccess 파일로 바꿔보자.
기본 워드프레스 .htaccess 내용은 아래와 같다.
# BEGIN WordPress
# "BEGIN WordPress"와 "END WordPress" 사이의 지시문(줄)은
# 동적으로 생성되며 워드프레스 필터를 통해서만 수정해야합니다.
# 이 표시 사이의 지시문을 변경하면 덮어쓰게 됩니다.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule># END WordPress
- 그래도 동일하다면 사이트주소/wp-cron.php (예: https://yourwebsite.com/wp-cron.php)로 입력하여 오류가 나오는지 확인해보자.
wp-cron.php를 실행할 때 빈 화면이 나오는 것은 정상이다.
이 파일은 내부적으로 예약된 작업을 처리하는 역할만 하고 실행 결과를 사용자에게 보여주지 않는다.만약 Forbidden 에러 발생시, .htaccess 파일에 아래 내용 추가하고 확인하자.
<Files wp-cron.php>
Order Allow,Deny
Allow from all
</Files>wp-cron.php에 대한 접근이 정상적으로 되고 더 이상 이 설정이 필요하지 않다면, 위 내용을 .htaccess 파일에서 지워도 괜찮다.
- ‘하나 이상의 크론 이벤트가 일정을 놓쳤습니다.’
오류가 더 이상 발생되지 않는다면 WP 크론트롤 플러그인을 비활성화 해도 된다.
서버 확인
서버가 느리거나 과부하 상태일 경우 예약 작업이 제대로 진행되지 않을 수 있다.
또한 Apache 설정, 방화벽 규칙, PHP 설정(disable_functions 등)을 확인하여 예약 작업이 제대로 작동하는지 확인해야 한다.
사용하는 호스팅 업체로 문의하여 서버 확인을 요청해보자.
오류가 발생하는 경로, 상황, 시점 등을 기재해서 서버 확인을 요청하면 더 빠르게 확인해줄 수 있다.
결론
나는 서버 설정 문제여서…. 호스팅 업체에서 서버 설정을 확인한 후 해결 되었다.