Обновление временных зон на FreeBSD сервере и PHP

Системы FreeBSD и PHP имею свои собственные базы файловых зон, поэтому при изменении в какой-нибудь стране часовых поясов необходимо производить обновление этих баз. Проверить текущую дату и часовой пояс в системе можно командой

date '+%x %X %z %Z'

В PHP проверить текущую временную зону можно командой

php -r 'date_default_timezone_set("Europe/Moscow"); 
echo "\n".date ("P",1414789200)."\n\n";'

Часовой пояс для системы в целом:

  1. Проверяем есть ли в существующем файле часового пояса нужные инструкции:

[#]zdump -v /etc/localtime | grep <дата>

  1. Если нет, то обновляем zoneinfo:

#portsnap fetch update && cd /usr/ports/misc/zoneinfo && make reinstall clean && tzsetup /usr/share/zoneinfo/Europe/Moscow

  1. Проверяем:

[#]zdump -v /etc/localtime | grep 2014
/etc/localtime Sat Oct 25 21:59:59 2014 UTC = Sun Oct 26 01:59:59 2014 MSK isdst=0 gmtoff=14400
/etc/localtime Sat Oct 25 22:00:00 2014 UTC = Sun Oct 26 01:00:00 2014 MSK isdst=0 gmtoff=10800

*/etc/localtime — должен быть копией либо симлинком на файл вашего часового пояса (/usr/share/zoneinfo/Europe/Moscow).

PHP

В случае незапланированных изменений во времени нашего часового пояса, таковой имел место быть 26 октября 2014 года,например, необходимо обновить базу часовых поясов php.
делается это через менеджер экстеншенов для php.

Если расширение уже установлено, нужно лишь обновить его:
[#] pecl upgrade timezonedb

Если нет, то установить:
[#] pecl install timezonedb && echo «extension=timezonedb.so» >> /usr/local/etc/php/extensions.ini && /usr/local/etc/rc.d/php-fpm restart
*если pecl не установлен, то его можно установить из портов: /usr/ports/devel/pear

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

Если PHP работает в качестве модуля Apache, перезагружаем веб-сервер чтобы применить изменения:

service apache22 restart
Запись опубликована в рубрике Администрирование с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *