Возможно, мне просто не повезло с настройщиками трех серверов, но на каждом из них не стояла зона в php.ini.
Вот эта:
С недавних пор это стало приводить к фатальному падению скриптов на кроне, из-за предупреждения PHP:
DateTime::__construct(): It is not safe to rely on the system's timezone settings.
Как следствие, агенты не выполнялись и все стопорилось. Будьте аккуратны, а лучше сразу проверьте в PHP настройку, и если она не задана, выставьте:
date.timezone = Europe/Moscow |
.
Смена таймзоны только в PHP создаст другие проблемы, например есть шанс, что отвалятся синхронизации с 1С и много других веселых штучек.
Я в ТП отписал в любом случае, попросил включить в тест продукта (а там уже и снабдят правильными комментариями, я думаю).
Ругается на файлы -
bitrix/modules/main/lib/type/datetime.php(21): DateTime->__construct()
bitrix/modules/security/lib/session.php(74): Bitrix\Main\Type\DateTime->__construct()
bitrix/modules/main/lib/entity/base.php(151): Bitrix\Security\SessionTable::getMap()
Решения проблемы пока что так и не нашел.
Везде стоит
В консоли ОС выводится верное время. date()
В скриптах выводится date() на час больше, при этом time() выводит верное время UNIX.
Вопрос: ну и как это понимать?
Версия bitrixvm 5.1.8. php-5.6.35