我使用的服务器是 Linode VPS。虽然在安装 LAMP 服务器的时候已经将时区配置为 HongKong,但是每次重启系统或者安装了重要更新之后,系统的时区就又回复到默认的 UTC 或者 EST 时间。现在终于可以保证每次重启服务器之后时间不再被重置了。
在安装 LAMP 服务器程序(CentOS + Apache + MySQL + PHP)之后,为了让系统中的 Apache 日志记录还有文件访问记录等使用的时间与我本地的时间一致,我将系统时区设置为 HongKong(UTC +8)。
- 查看系统中的时区配置文件:
# ls /usr/share/zoneinfo
上海时区文件应该在 Asia 目录下:
# ls /usr/share/zoneinfo/Asia
- 我还是用香港时区吧。将 HongKong 时区软连接到 localtime:
# ln –sf /usr/share/zoneinfo/Hongkong /etc/localtime
- 看看时间:
# date Fri Jul 5 11:46:18 HKT 2013
这样基本上也可以了,现在系统使用的时间就是 HongKong 了,跟北京时间一样。
但是问题在于,重启 VPS 系统或者进行了重大升级之后,系统时间就又重置到默认状态了。这个很不方便,还需要进行刚才的操作。后来找了找,发现不仅需要设置系统时区,还需要更新系统的时钟配置。接着进行下面的操作。
- 将系统时钟设置为使用香港时区:
# echo "ZONE=\"Asia/Hong_Kong\"" > "/etc/sysconfig/clock"
不过也许最好还是先看看
/etc/sysconfig/clock
文件里是否已经有了类似的语句,而只需要修改后面的时区配置,cat /etc/sysconfig/clock
另外,有的 Linux 发行版里面配置不同,比如 OpenSUSE 里面的就是
TIMEZONE
,TIMEZONE="Europe/London"
细心的你应该发现,这里的时区是
Asia/Hong_Kong
,与刚才配置 localtime 时候使用的不一样。这里使用的时区(Time Zone)与 PHP 的使用的 Time Zone 表示方法是一样的。其中亚洲的所有时区为:亚洲的所有时区 Asia/Aden Asia/Almaty Asia/Amman Asia/Anadyr Asia/Aqtau Asia/Aqtobe Asia/Ashgabat Asia/Ashkhabad Asia/Baghdad Asia/Bahrain Asia/Baku Asia/Bangkok Asia/Beirut Asia/Bishkek Asia/Brunei Asia/Calcutta Asia/Choibalsan Asia/Chongqing Asia/Chungking Asia/Colombo Asia/Dacca Asia/Damascus Asia/Dhaka Asia/Dili Asia/Dubai Asia/Dushanbe Asia/Gaza Asia/Harbin Asia/Hebron Asia/Ho_Chi_Minh Asia/Hong_Kong Asia/Hovd Asia/Irkutsk Asia/Istanbul Asia/Jakarta Asia/Jayapura Asia/Jerusalem Asia/Kabul Asia/Kamchatka Asia/Karachi Asia/Kashgar Asia/Kathmandu Asia/Katmandu Asia/Khandyga Asia/Kolkata Asia/Krasnoyarsk Asia/Kuala_Lumpur Asia/Kuching Asia/Kuwait Asia/Macao Asia/Macau Asia/Magadan Asia/Makassar Asia/Manila Asia/Muscat Asia/Nicosia Asia/Novokuznetsk Asia/Novosibirsk Asia/Omsk Asia/Oral Asia/Phnom_Penh Asia/Pontianak Asia/Pyongyang Asia/Qatar Asia/Qyzylorda Asia/Rangoon Asia/Riyadh Asia/Saigon Asia/Sakhalin Asia/Samarkand Asia/Seoul Asia/Shanghai Asia/Singapore Asia/Taipei Asia/Tashkent Asia/Tbilisi Asia/Tehran Asia/Tel_Aviv Asia/Thimbu Asia/Thimphu Asia/Tokyo Asia/Ujung_Pandang Asia/Ulaanbaatar Asia/Ulan_Bator Asia/Urumqi Asia/Ust-Nera Asia/Vientiane Asia/Vladivostok Asia/Yakutsk Asia/Yekaterinburg Asia/Yerevan - 看看配置的怎么样:
# cat /etc/sysconfig/clock ZONE="Asia/Hong_Kong"
以后再重启服务器就不会发生时区又被重置的问题了。其它 Linux 发行版我没有试过,配置应该差不多。至少,Fedora / RHEL / CentOS 等发行版可以直接使用上面的设置。©
本文发表于水景一页。永久链接:<https://cnzhx.net/blog/linode-vps-set-timezone/>。转载请保留此信息及相应链接。
引用通告: Linode VPS 上 CentOS 6 安装 LAMP + phpMyAdmin 记录 | 水景一页
我用的也是Linode,经常是把时区设置为上海之后莫名其妙的又变成了UTC,原来是没有更新时钟文件啊,顺便说下,我也是郑州人哈哈
我就是因为这个才花了很多功夫找方法的 :D
P.S. 你都默认 https 了啊,很先进
帮了大忙,我是用DigitalOcean的,重启后时区也是被重置啊。
看来这个问题是虚拟机本身的设计问题了。
P.S. 看了看 DigitalOcean,跟 Linode 风格很像啊。
DigitalOcean挺多人用的啊。
看网上的评价,DO 与 Linode 竞争很激烈的