at posts/single.html

TextDrive のタイムゾーン設定

TextDrive は海外のサーバなので、当然時刻は日本時間に設定されていない。 少し調べたところ、環境変数 TZ に JST-9 を設定すればいいみたい。

シェル

.zshrc に設定を追加する。

export TZ=JST-9

これで date コマンドの結果が、日本時間 (JST) で表示されるようになる。

$ date
Wed Oct 25 19:37:23 JST 2006

irb でも同じ。

irb(main):001:0> Time.now
=> Wed Oct 25 19:38:00 JST 2006

lighttpd + Trac (FastCGI)

etc/lighttpd/vhosts.d/trac.conf の bin-environment に設定を追加する。

fastcgi.server = ( "/trac" =>
                  ( "trac" =>
                   ( "socket" => base + "/var/run/trac-fastcgi.sock",
                     "bin-path" => base + "/share/trac/cgi-bin/trac.fcgi",
                     "max-procs" => 1,
                     "check-local" => "disable",
                     "bin-environment" =>
                      ( "TRAC_ENV_PARENT_DIR" => base + "/var/trac",
                        "PYTHONPATH"          => base + "/lib/python2.4:" + base + "/lib/python2.4/site-packages",
                        "TZ" => "JST-9",
                      )
                   )
                  )
                 )

これで Trac の Timeline などで表示される時刻が日本時間になった。

この方法じゃだめだった。 たまたま、シェルに TZ を設定していたので上手くいっているように見えただけだった。

代わりに、 lighttpd の起動シェル (etc/rc.d/lighttpd.sh) に設定した。

HOME=/users/home/`whoami`
LIGHTTPD_CONF=$HOME/etc/lighttpd/lighttpd.conf
PIDFILE=$HOME/var/run/lighttpd.pid
export SHELL=/bin/sh
export TZ=JST-9

今度こそ大丈夫だ。 Trac だけじゃなくて、 lighttpd のログも日本時間で表示されるようになった。

Apache

Webmin の「CGIプログラム」を開いて、「CGIスクリプトの環境変数」に変数 TZ と値 JST-9 を設定する。 実際のディレクティブには下記が追加される。

SetEnv TZ "JST-9"

関連する日記