正确配置 Linode VPS 的系统日期

我使用的服务器是 Linode VPS。虽然在安装 LAMP 服务器的时候已经将时区配置为 HongKong,但是每次重启系统或者安装了重要更新之后,系统的时区就又回复到默认的 UTC 或者 EST 时间。现在终于可以保证每次重启服务器之后时间不再被重置了。

安装 LAMP 服务器程序(CentOS + Apache + MySQL + PHP)之后,为了让系统中的 Apache 日志记录还有文件访问记录等使用的时间与我本地的时间一致,我将系统时区设置为 HongKong(UTC +8)。

  1. 查看系统中的时区配置文件:
    # ls /usr/share/zoneinfo

    上海时区文件应该在 Asia 目录下:

    # ls /usr/share/zoneinfo/Asia
  2. 我还是用香港时区吧。将 HongKong 时区软连接到 localtime:
    # ln –sf /usr/share/zoneinfo/Hongkong /etc/localtime
  3. 看看时间:
    # date
    Fri Jul  5 11:46:18 HKT 2013

这样基本上也可以了,现在系统使用的时间就是 HongKong 了,跟北京时间一样。

但是问题在于,重启 VPS 系统或者进行了重大升级之后,系统时间就又重置到默认状态了。这个很不方便,还需要进行刚才的操作。后来找了找,发现不仅需要设置系统时区,还需要更新系统的时钟配置。接着进行下面的操作。

  1. 将系统时钟设置为使用香港时区:
    # 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
  2. 看看配置的怎么样:
    # cat /etc/sysconfig/clock
    ZONE="Asia/Hong_Kong"

以后再重启服务器就不会发生时区又被重置的问题了。其它 Linux 发行版我没有试过,配置应该差不多。至少,Fedora / RHEL / CentOS 等发行版可以直接使用上面的设置。©

本文发表于水景一页。永久链接:<http://cnzhx.net/blog/linode-vps-set-timezone/>。转载请保留此信息及相应链接。

7 条关于 “正确配置 Linode VPS 的系统日期” 的评论

  1. 引用通告: Linode VPS 上 CentOS 6 安装 LAMP + phpMyAdmin 记录 | 水景一页

  2. 我用的也是Linode,经常是把时区设置为上海之后莫名其妙的又变成了UTC,原来是没有更新时钟文件啊,顺便说下,我也是郑州人哈哈

    • 我就是因为这个才花了很多功夫找方法的 :D
      P.S. 你都默认 https 了啊,很先进

时间过去太久,评论已关闭。
如果您有话要说,请到讨论区留言并给出此文章链接。
谢谢您的理解 :-)