워드프레스의 사이트 건강 도구에 "PHP 기본 시간대가 유효하지 않습니다. date_default_timezone_set() 함수 호출로 워드프레스를 로드한 후 PHP 기본 시간대를 변경했습니다. 날짜와 시간의 정확한 계산을 방해합니다." 오류가 표시되는 경우가 있습니다.

이 오류는 기본적으로 서버의 PHP 기본 시간대 설정과 워드프레스의 시간대 관리 방식이 충돌하여 발생하는 문제입니다. 워드프레스에서 이 문제가 발생하는 경우 확인 사항에 대하여 살펴보겠습니다.
워드프레스: "PHP 기본 시간대가 유효하지 않습니다" 오류가 발생하는 경우
네이버 전용 IndexNow 플러그인을 개인적으로 만들어 네이버 카페에서 다운로드 받도록 하고 있습니다. 이 플러그인이 대부분의 호스팅에서는 문제가 없었지만 가비아 호스팅에서 PHP 기본 시간대가 유효하지 않다(PHP default timezone is invalid)는 경고가 표시되는 문제가 발생했습니다.
이 오류는 보통 특정 플러그인에서 date_default_timezone_set() 함수를 호출할 때 발생하는 것 같습니다. 제가 만든 플러그인에 다음과 같이 시간대를 추가한 코드가 있었습니다.
date_default_timezone_set('Asia/Seoul');
이 함수를 삭제하니 문제가 해결되었습니다. (코드에서 이 라인을 유지하고 싶은 경우 //를 앞에 추가하여 주석 처리하시면 됩니다.)
그리고 다른 분이 클라우드웨이즈에서 운영하는 워드프레스 사이트에서 서버의 PHP 시간대 설정이 "독일"로 되어서 이런 문제가 발생한다고 보고해왔습니다.
Cloudways의 경우 서버 관리 페이지 » Settings & Package (설정 및 패키지) » Basic (기본) » PHP timezone (PHP 시간대)에서 PHP 시간대를 설정할 수 있습니다.

이 설정은 일반적으로 위의 그림과 같이 아무런 옵션을 선택하지 않은 상태로 두면 문제가 발생하지 않을 것입니다. "독일" 등으로 설정된 경우 "UTC"로 설정하여 문제가 해결되는지 테스트해보시기 바랍니다.

워드프레스 시간대는 우리나라에서 사이트를 운영하는 경우 설정 » 일반 » 시간대에서 "서울"을 선택할 수 있습니다.

이러한 조치에도 문제가 해결되지 않으면 플러그인을 모두 비활성화한 후에 기본 시간대 오류 문제가 해결되는지 체크해보시기 바랍니다. 그래도 해결되지 않으면 테마를 워드프레스 공식 테마 중 하나(예: Twenty Twenty-Five)로 변경하여 문제가 사라지는지 확인해보세요.
마치며
워드프레스에서 "PHP 기본 시간대가 유효하지 않습니다" 문제는 보통 플러그인 등에서 date_default_timezone_set() 함수를 사용하여 발생하는 것 같습니다. 이 에러가 발생하는 경우 이 함수를 사용하는 플러그인을 찾아서 비활성화하거나 해당 함수를 삭제하여 문제가 해결되는지 살펴보시기 바랍니다.
문제가 해결되면 사이트 건강에서 이 경고가 사라지고 통과한 테스트 항목에 "PHP 기본 시간대가 유효합니다"가 표시됩니다.

사이트 건강 도구에 문제나 권장 개선 사항이 표시되는 경우 가급적이면 해당 문제나 개선 사항을 해결하는 것이 바람직합니다. 아래 그림에서는 "비활성화 플러그인을 모두 제거해야 한다"는 경고가 표시됩니다. 비활성화한 플러그인을 제거하지 않아도 당장 문제가 발생하지는 않지만 추후 보안 문제가 발생할 수 있으므로 불필요한 플러그인은 삭제하는 것이 바람직합니다.

댓글 남기기