Тема: PHP на FreeBSD в JAIL. Перевод часов на зимнее время.

Всем привет!

Сегодня в России не перешли на зимнее время.
Но PHP пофиг настройки в системе. Он пашет по своему:

# php test.php
Sun, 30 Oct 2011 10:34:05 +0300

в php.ini все верно вроде date.timezone = "Europe/Moscow"

Не смотря на это, система настроена и работает правильно

# date
Sun Oct 30 11:35:07 MSK 2011

Что сделать с PHP, чтобы показывало без сдвига?

2

Re: PHP на FreeBSD в JAIL. Перевод часов на зимнее время.

пересобрать php. Помогло только такое.

3 (26-11-2013 22:54:24 отредактировано Кручу-Верчу)

Re: PHP на FreeBSD в JAIL. Перевод часов на зимнее время.

Точно. Помогло!

Добавлено: 26-11-2013 22:48:39


Тут в JAIL кстати в точности до наоборот... Сдвиг в системе показывает по летнему времени, а в PHP на зимнем стоит.

# date
Tue Nov 26 21:44:01 MSK 2013
#php -r 'echo date("d.m.Y H:i:s");'
26.11.2013 22:48:16

Что с этим делать, чтобы в системе верно показывало?
Пробовал так cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
не помогло

Хотя в системе коренной показывает верно
# date
Tue Nov 26 22:53:24 MSK 2013

Добавлено: 26-11-2013 22:56:55

Излечилось копированием из корневой системы /etc/localtime

cp /etc/localtime /jail/path/host/etc/localtime

4

Re: PHP на FreeBSD в JAIL. Перевод часов на зимнее время.

в jail не обновили список timezone

5

Re: PHP на FreeBSD в JAIL. Перевод часов на зимнее время.

Сегодня 26.10.2014
Пытались перевести время путем перестановки в.у. способом пересборкой PHP
Может кто удивится, но попытки пересобрать ПХП ни к чему не привели.
Пересобрали world (без обновления src, просто make world && make installword)
Не заработало и после.

Детали: действия проводились внутри JAIL
OS: 8.0-RELEASE-p6

root@www2:/usr/ports/lang/php5 # work/php-5.4.21/sapi/cli/php -r 'echo date("d.m.Y H:i:s");'
26.10.2014 23:12:25
root@www2:/usr/ports/lang/php5 # php -r 'echo date("d.m.Y H:i:s");'
26.10.2014 23:12:31
root@www2:/usr/ports/lang/php5 # date
Sun Oct 26 22:12:33 MSK 2014
root@www2:/usr/ports/lang/php5 # make install clean
===>  Cleaning for php5-5.4.21

/* Добавлено спустя  несколько часов битвы за время */
Танцы с бубнами продолжаются. Уже поставили из портов zoneinfo
Обновили внутри JAIL.

# md5 /usr/share/zoneinfo/Europe/Moscow /etc/localtime
MD5 (/usr/share/zoneinfo/Europe/Moscow) = 7f49f2f346c4505656e3d3f750b131df
MD5 (/etc/localtime) = 7f49f2f346c4505656e3d3f750b131df

но глюк продолжается.
# date
Mon Oct 27 02:00:48 MSK 2014
а ПХП на час больше...

Что можно сделать еще?

6

Re: PHP на FreeBSD в JAIL. Перевод часов на зимнее время.

подозреваю, что php еще не готов к переходу. Или попробуй поставить pecl-timezonedb

7

Re: PHP на FreeBSD в JAIL. Перевод часов на зимнее время.

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

8

Re: PHP на FreeBSD в JAIL. Перевод часов на зимнее время.

http://php.net/manual/en/function.date- … ne-set.php

берет из глобальной переменной TZ

9

Re: PHP на FreeBSD в JAIL. Перевод часов на зимнее время.

SatanaClause пишет:

берет из глобальной переменной TZ

а проверить какая зона используется можно запустив phpinfo.php

<?php
phpinfo();
?>

10 (28-10-2014 21:23:54 отредактировано Кручу-Верчу)

Re: PHP на FreeBSD в JAIL. Перевод часов на зимнее время.

Lord-Leon пишет:
SatanaClause пишет:

берет из глобальной переменной TZ

а проверить какая зона используется можно запустив phpinfo.php

<?php
phpinfo();
?>

Да уж, тут еще паяльной лампой посоветовали бы посветить.

11

Re: PHP на FreeBSD в JAIL. Перевод часов на зимнее время.

Делаем раз

cd /usr/ports/misc/zoneinfo && make install clean

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

tzsetup -r

или так, т.е. вручную. К примеру если система крутится на FreeBSD 6 или версии ниже 9

Установка базы часовых поясов вручную

Загружаем актуальную версию базы часовых поясов:

fetch ftp://ftp.iana.org/tz/tzdata-latest.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

Удачи!

12

Re: PHP на FreeBSD в JAIL. Перевод часов на зимнее время.

Санек, вы главное забыли. У php есть еще своя таймзона, если мне память не изменяет