질문/조언질답게시판
Extra Form
PHP PHP 7.0
CMS Rhymix

사이트를 해외 vps서버로 운영중인데요 

https://www.vultr.com/

문제는 시간설정을 수동으로 변경을 해도 그렇고 동기화 프로그램을 사용해서 시간 동기화를 시켜도 자꾸  현지 시간으로 변경이 되버리네요 혹시 사이트자체에서 시간을 강제로 할 수 있는 방법이 있을까요?

TAG •
  • profile
    (라이믹스를 명시하여 라이믹스 기준 답변드립니다)
    https://github.com/rhymix/rhymix-docs/blob/85ad4c6721adc605645b3d40b9d0d7356a4db93b/ko/misc/timezone.md

    위 주소에 명시되어 있듯이 라이믹스는 서버 시간대를 사용하지 않습니다. 즉 시간만 맞다면 어느 시간대로 설정되어 있더라도 상관없습니다.
  • profile profile
    넵 잘 이해가 안되는게 현재 증상이 서버의 시간을 한국시간으로 강제 동기화 시켜서 글을 작성하면 한국시간대로 작성이 되어 있는데 나중에 다시 서버시간이 현지시간으로 변경되면 (9시간전) 방금 작성된 글들이 9시간 전에 작성된걸로 나오거든요.. 이건 서버의 시간대를 사용하는것 아닌가요?
  • profile profile

    리눅스 서버는 표준 시간대를 정상적으로 변경하지 않고 그냥 눈에 보이는 시간만 rdate로 바꿔놓으면 시간이 잘못 지정되었다고 여기기 때문에 원래대로 돌아가 버립니다. 왜냐하면... 시간이 잘못 지정된 거니까요.

    예를 들어 "현재 런던은 4시 45분이다"라고 되어 있는 서버에서 시간만 바꾸어 "현재 런던은 13시 45분이다"라고 해놓으면 당연히 잘못된 거잖아요. "현재 서울은 13시 45분이다"로 바꿔야지요. 우리나라는 표준 시간대도 하나뿐이고 서머타임도 쓰지 않기 때문에 지역에 따른 시간차의 중요성을 잘 느끼지 못하는 분이 많지만, 지역을 명시하지 않은 시간은 무의미한 숫자에 불과합니다.

    서버의 표준 시간대를 아예 Asia/Seoul로 바꾸거나, 아니면 그냥 현재시간으로 냅두고 라이믹스에서만 조정하세요. 윗분 말씀대로 서버에 설정된 시간이 틀리지만 않으면 라이믹스 입장에서는 상관이 없습니다. 여기서 시간이 맞다는 것은 눈에 보이는 "13시 45분"만 맞으면 되는 것이 아니라, "서울"과 "13시 45분"의 조합이 둘 다 맞아야 한다는 의미입니다.

  • profile profile
    라이믹스에서는 시스템 설정에서 표준시간대 Asia/Seoul (+09:00) 되어 있거든요 따로 바꿔야 되는 부분이 있나요?
  • profile profile

    라이믹스는 제대로 설정되어 있는 것 같은데, 서버(VPS) 자체의 시간을 잘못 지정하셨잖아요.

     

    한국 시간으로 강제 동기화시켰다는 것부터 에러입니다. 무슨 동기화 프로그램을 사용하셨는지 모르겠지만, 국내 서버용으로 만들어진 한글 튜토리얼을 참고하셨다면 "런던은 현재 13시 54분이다"와 같은 엉터리 지역/시간 조합으로 설정되었을 가능성이 매우 높습니다. 런던이 13시 54분이라면 서울은 22시 54분이니, 라이믹스에서 서울 시간으로 변환해 주었을 때 당연히 22시 54분으로 잘못 나옵니다.

     

    Vultr라면 해외서버니까 당연히 자기 위치가 해외라고 인식하는 것이 기본값입니다. 전세계 여기저기에 IDC가 있는 글로벌 기업들은 아예 국제 표준시로 통일하기도 하고요. 자기 위치를 서울로 인식하도록 바꿔주거나, 서버가 자기 위치라고 인식하고 있는 지역의 시간을 따라야 합니다. 예를 들어 LA라면 한국보다 17시간 늦게 맞춰줘야 합니다. 그리고 나서 라이믹스한테 서울 시간으로 변환하라고 시키면 잘 합니다. 그러나 서버 자체가 "여긴 어디? 난 누구?" 이러고 있으면 라이믹스를 포함하여 그 서버에서 돌아가고 있는 모든 프로그램이 다 헷갈리겠지요.


    우분투에서는 sudo dpkg-reconfigure tzdata 명령으로 표준 시간대를 변경할 수 있습니다.
    센토스에서는 sudo timedatectl set-timezone Asia/Seoul 입니다.
    변경 후 재부팅이 필요할 수 있습니다.

     

    만약 이것으로도 해결되지 않는다면 추가 질문하시기 전에 서버에서 date 명령을 실행한 결과를 보여주세요.