Обновление timezone DB в FreeBSD

Проверяем текущее время и часовой пояс:
date '+%x %X %z %Z'

Получаем расписание перевода часов на 2014 год:
zdump -v /etc/localtime | grep 2014

Загружаем актуальную версию базы часовых поясов:
fetch ftp://ftp.iana.org/tz/tzdata-latest.tar.gz
(на момент публикации последняя версия - tzdata2016j.tar.gz)

Распаковываем архив:
mkdir tzdata
cd tzdata
tar xzf ../tzdata-latest.tar.gz

Компилируем данные для Европы, там же находится и азиатская часть России:
zic europe

Результат компиляции записывается непосредственно в папку назначения: /usr/share/zoneinfo. Проверяем, что файлы имеют текущую дату:
ls -l /usr/share/zoneinfo/Europe
ls -lt /usr/share/zoneinfo/Asia | head

Обновляем текущий часовой пояс:
tzsetup -r

Замена часового пояса на GMT-x

В особо запущенных случаях, если не работает ни один вышеописанный способ.

Задаем временную зону GMT-x:
cp /usr/share/zoneinfo/Etc/GMT-3 /etc/localtime

Использовать команду zdump для верификации в этом случае бессмысленно, поскольку автоматического перевода часов в этих временных зонах не предусмотрено.

Обновление часовых поясов в PHP

PHP использует собственную базу часовых поясов, ее необходимо обновить отдельно.
Получаем текущее время и часовой пояс, регион необходимо указать свой:

php -r 'date_default_timezone_set("Asia/Baghdad"); echo "\n".date ("d.m.Y H:i P")."\n\n";'

Если имеем некорректный часовой пояс, приступаем к обновлению.
Сборка pecl-timezonedb вручную для устаревших систем

Метод проверен на FreeBSD 7.4, 8.3

Требуется наличие autoconf, иначе phpize завершится с ошибкой, и скрипт configure не будет создан.

Загружаем расширение:
fetch -o timezonedb.tgz http://pecl.php.net/get/timezonedb

Распаковываем:
tar -xvf timezonedb.tgz

Переходим в папку с исходниками:
cd timezonedb-2016.10

Собираем и устанавливаем:
phpize
./configure
make install

Добавляем строку extension=timezonedb.so в extensions.ini:

mkdir /usr/local/etc/php
printf "\nextension=timezonedb.so\n" >>/usr/local/etc/php/extensions.ini
cat /usr/local/etc/php/extensions.ini

Проверяем часовой пояс.

 

<< Назад

Наверх