понедельник, 27 октября 2014 г.

Особенности обновления таймзон

Предисловие:
Рецепты для centos, debian, freebsd, небольшой такой сборник.
Не забываем обновить сначала порты/пакеты, у дебиана apt-get update, у freebsd через svnup или portsnap fetch update. Centos сам обновит.


Система:
проверка
# date
# zdump -v /etc/localtime | grep 2014
Тут должно быть 2 записи, если это не так - требуется обновить файл

FreeBSD:
pkg install zoneinfo
или
portmaster misc/zoneinfo
или
make -C /usr/ports/misc/zoneinfo install clean
(при необходимости сначала deinstall)

Есть вариант скачать архив зон и скомпилировать через zic, но уже совсем хардкор, поэтому пропустим.

Затем, если date по прежнему показывает неверно, нужно
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime (можно cp)
или
tzsetup -r

Centos:
yum install -y tzdata

Debian:
apt-get install -y tzdata

Замечание для squeeze: обычные репы уже не содержат новую таймзону, нужно подключить lts
grep -q 'squeeze-lts' /etc/apt/sources.list || echo "deb http://ftp.us.debian.org/debian squeeze-lts main non-free contrib" >> /etc/apt/sources.list

PHP:
проверка
php -r "echo date('H:i:s');"
php -r "print date('r',time());"

FreeBSD:
pkg install pecl-timezonedb
или
portmaster misc/pecl-timezonedb
или
make -C /usr/ports/misc/pecl-timezonedb install clean

Перезапустить php-fpm или апач

Centos, debian:
особых манипуляций не нужно, только обновление системных зон и перезапуск того, что завязано на php (apache например)

Java:
Centos, debian:
обновляем tzdata-java

MySQL:
Обычно достаточно обновить только системные зоны и перезапустить БД, но иногда требуется mysql_tzinfo_to_sql
mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql mysql
Потом надо перечитать новые зоны базой, например перезапустив сервис БД.

проверка:
mysql> show variables like 'time_zone';
+---------------+--------+
| Variable_name | Value  |
+---------------+--------+
| time_zone     | SYSTEM |
+---------------+--------+
1 row in set (0.11 sec)
(аналог: SELECT @@session.time_zone; )

mysql> select now();

Прочие:
Также была замечена отдельная база у tcl

Всякое разное:
Работа с временными зонами в PHP
http://itadept.ru/freebsd-timezone-update/
http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html
http://www.opennet.ru/tips/1810_timezone_date_time.shtml
http://stackoverflow.com/questions/930900/how-to-set-time-zone-of-mysql
http://dmilvdv.narod.ru/AT91SAM9260/time_zones.html

Комментариев нет:

Отправить комментарий