(2012-03-07 更新)小蛙在這篇文章會介紹怎麼在Ubuntu環境下設定時區以及透過網路更新時間。小蛙最近在試著透過crontab設定讓vps可以定期備份資料庫及WordPress,shell script不熟悉讓小蛙卡了好久…到了要測試crontab的時候卻發現怎麼crontab都沒運行,查了一下才發現系統時間是有問題的。

在還沒有發現時區的問題時(sense不夠),一直在設定crontab,想說先測試一兩分鐘後跑起來的情況,結果過了三分鐘卻一動也不動,google了一下,在ubuntu下看系統時間的指令是

# date
Thu Dec 22 13:38:05 CST 2011

但是現在時間是2011-12-22 14:01:00才對,用「Ubuntu系統時間校正」當關鍵字google了一下,得到一些校正時間的方法,馬上來試一下

# ntpdate time.stdtime.gov.tw
-bash: ntpdate: command not found
# apt-get install -y ntpdate ntp
...
# ntpdate time.stdtime.gov.tw
22 Dec 05:22:19 ntpdate[8132]: the NTP socket is in use, exiting

好吧,看來問題不是「系統時間校正」,確定系統時間沒問題後,接著小蛙朝著「Ubuntu設定時區」尋找。在VPS 主機:基礎設定這篇文章中看到

3. 重設時區 (請選 Asia - Taipei)
# dpkg-reconfigure tzdata
Current default time zone: 'Asia/Taipei'
Local time is now:      Thu Dec 22 13:24:48 CST 2011.
Universal Time is now:  Thu Dec 22 05:24:48 UTC 2011.

時區正確,時間正確!真的揪甘心!
2012-03-07
昨天小蛙不小心把VPS給搞壞了,重開機之後就再也見不到美麗的歡迎訊息了「Welcome to Ubuntu」,令人感到難過,花了一天的時間慢慢把軟體裝回去、設定回去,目前大致上是都可以跑了,幸好平常有寫一隻shell script來定期打包wordpress及mysqldump,厲害的是這支shell script在這次的災難中也遺失了…(千備萬備,竟然忘了把home目錄備份下來…),重灌的過程中遇到我的股票精算師有一支php專門去抓取大盤指數,全部設定都就緒後,在塞進資料庫SET update_time = now()的時候,出現的時間竟然是有問題的…找了一下才發現只要修改php.ini這個檔案中的timezone就可以了。

vim /etc/php5/cgi/php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
// 找到 timezone = 把前面的註解取消,後面加上地區位置
date.timezone=Asia/Taipei

在網路上查到的資料是說把apache2重新啟動即可(先stop再start,不要用restart),但小蛙用的是lighttpd不管restart或是stop再start都還是一樣不行,把機器reboot之後就可以了^__^

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *