WordPress (또는 과거 PHP 프로그램) 에서 UTC 시각이 잘못 표시될 때

▶ 문제점

– WordPress 설정에서 UTC 시각이 표현되야 하는 부분에서 UTC 시각이 아닌 현지 시각이 표시되는 문제가 발견

[ 워드프레스 설정에 들어가면 UTC 시각이 이상하게 표시되고 있습니다. ]

– 이는 워드프레스 게시글 발행 시간이 한국 같은 경우에는 9시간 전으로 표시되는 등, 시각 표시가 이상해지는 문제를 발생시켰음

서버 시간은 정상적으로 표시되고 있었던 것으로 보아, 문제는 PHP 또는 웹서버에서 나타날 가능성이 높았음

[ 리눅스 콘솔에서 date를 입력하면 정상 시각이 표시되고 있음을 알 수 있습니다. ]

 

▶ 해결책 모색

– 일단 PHP에서 UTC로 시각을 변환한 다음에 표기하는 소스를 활용하여 테스트를 진행함

 

– 표시 결과가 UTC로 변경하였음에도 로컬 타임을 UTC로 착각하고 있음 (슬프게도, 한국 시간대인 KST를 평양 시간대로 이해하고 있다. 정말 어이가 없다…ㅠㅠ)

[ UTC 시각이 로컬 시간과 같게 나오는 것을 보니, UTC 타임존이 적용되지 않았음 ]

– 하지만, UTC/GST 시각을 반드시 표기해야 하는 gmdate()는 정상적으로 표시되고 있는 부분이 이상함.

– 결론적으로 PHP 공식 홈페이지에서 확인한 결과, UTC라는 타임존으로 변경하는 것은 앞으로 지양하길 바란다는 메시지를 확인할 수 있었음 (여기)

[ 영어는 잼병이므로 자세한 내용은 읽어보시기 바랍니다…ㅠㅠ ]

 

▶ 해결책

– 일단, date_default_timezone_set(“UTC”); 를 통해 시간존을 바꿀 때는 ‘UTC’라는 표현을 사용하지 않아야 함. (작동하지 않는 경우가 발생하므로)

– UTC 대신, ” Etc/GMT “, 즉 date_default_timezone_set(“Etc/GMT”); 를 사용하면 정상 작동함을 확인할 수 있음

[ 위의 소스코드에서 UTC/GMT 타임존을 해결책 대로 변경한 후의 결과 ]

– 워드프레스의 경우, UTC 시간대를 정해주는 부분이 wordpress 폴더의 wp-settings.php에 위치하고 있으므로, 그 부분의 소스코드를 찾아 다음과 같이 변경할 필요가 있음

– 다음과 같이 변경하면, UTC 시각이 정상 표시되어 시각에 문제가 발생하지 않음을 알 수 있음

 

 

▶ 원인 분석

– 아마도 PHP5때는 잘 작동하던 것이, PHP7이 되면서 잘 작동하지 않는 것 같음 (분명한 사실은 아님)

– 앞으로 PHP 프로그램에서 이런 문제가 파악될 때는, 대체로 ⓐ서버 시간이 제대로 설정되어 있는지, ⓑPHP 소스 코드에서 UTC로 시각을 변환해주는 부분에 문제가 있는지, 를 파악하면 될 것 같음

이런 글들은 어떠신가요?

Hotspot Shield Elite 1년 이용권 간단 리뷰 1. 들어가며 최근 다양한 외국 미디어나 어플리케이션 스토어의 매체의 우회 접속, 해킹 등으로 인한 각종 IP 접속에 대해 보안을 필요로 하는 경우가 많아졌습니다. 이에 따라서 VPN 서비스 또한 굉장히 큰 발전세를 보이고 있는데요.필자는 평소에도 VPN의 활용에...
NVIDIA SHIELD TV (엔비디아 쉴드 안드로이드 TV) 간단 동영상 리뷰... 안녕하세요. 곰곰입니다.오늘은 안드로이드 TV인 NVIDIA SHIELD (엔비디아 쉴드 TV)를 동영상 리뷰로 소개하고자 합니다.https://youtu.be/YY6yVIvMhn4 동영상에서 제공되고 있는 스펙 일람 사진은 다음과...
iCloud 사진 보관함 사진 백업하기 (Windows iCloud 활용)... 안녕하세요. 곰곰입니다.오늘은 iCloud 사진 보관함에 저장되어 있는 사진을 내 컴퓨터로 백업하는 방법을 소개하고자 합니다. 각자 iCloud 사진 보관함에 옮기셔야 할 이유는 다양하실텐데요, 저는 곧 구매할 NAS에 사진을 보관하고 iCloud 50GB 구...
리눅스 민트(Linux Mint) 부팅 시 콘솔(CUI)로 부팅하기... ▶ 들어가며 리눅스 민트(Linux Mint)는 우분투 기반으로 만들어진 리눅스입니다. 기존에 있던 우분투도 사용자적인 측면에서 많은 배려가 있는 운영체제였는데요, 리눅스 민트는 더욱 더 사용자가 친숙하다고 느낄 수 있도록(사실 이 친숙하다는 부분은 Microsoft...
웹 서버 프로토콜(HTTP/SSL/SPDY/HTTP2) 전송 상태 확인하기... ▶ 들어가며 웹서버를 구축하며 웹 서버의 보안 또는 HTTP 통신 프로토콜에 신경을 쓰는 것은 굉장히 중요합니다. HTTP(하이퍼텍스트 전송 규칙; HTTP에 대해 자세한 정보가 필요하시면 여기(나무위키)나 여기(위키피디아)를 참고하세요.)는 첫 상용...

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다