본문 바로가기
Develop/PHP

리눅스 시간 및 PHP Timezone 설정

by bellsilver7 2016. 12. 10.
728x90

PHP 에서 date("Y-m-d H:i:s") 를 찍어봤는데 현재 시간과 달랐다. php.ini 파일에서 타임존 설정도 해주고 리눅스 시간도 맞춰줬는데 시간이 달랐다. 마지막 원인은 리눅스에서 date 명령어를 쳤을 때 끝에 노출되는게 EST 였다. 이게 KST로 나와야 한다고 한다. 무튼 이래저래 시간을 맞춰주기 위해서는 다음과 같이 순서대로 설정해주면 될거 같다.




1. 리눅스 localtime 설정


ls /usr/share/zoneinfo

위 명령으로 zoneinfo 하위에 Asia가 존재하는지 확인한다.

ls /usr/share/zoneinfo/Asia

그 다음 위 명령을 내리면 Asia의 국가들이 나온다. Seoul 이 존재하는지 확인다.


위에서 확인한 Seoul로 localtime을 설정해주려면 아래와 같이 명령을 내리면 된다.

ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime




2. 리눅스 시간 설정


1번에서와 같이 localtime을 Asia로 설정해주고 나서 date의 시간이 맞다면 괜찮지만 맞지 않다면 다음과 같이 설정해주면 된다.

http://ko.thetimenow.com/south_korea

위와 같은 현재 시간을 볼 수 있는 사이트를 통해 현재 시간을 확인한 다음 리눅스에서 다음과 같이 명령을 내려준다.

date -s "2016-12-10 23:34:50"

위 명령을 내리고 date 명령어로 확인하면 시간이 맞게 나온다. 그 다음 아래 명령으로 하드웨어 시간을 설정해야한다. 

hwclock --localtime --systohc

그 다음 아래 명령으로 하드웨어 시간을 확인하면 시간이 일치하는 것을 확인할 수 있다.

hwclock -r




3. PHP timezone 설정


PHP 소스에 date_default_timezone_set('Asia/Seoul'); 이렇게 코드를 넣어주는 방법도 있지만 php.ini 파일에서 date.timezone을 검색하여 아래와 같이 적어주는 방법도 있다.

date.timezone = Asia/Seoul



728x90

댓글