Часовой пояс Ubuntu сервера


Часовой пояс Ubuntu сервера настраивается с  помощью интерфейса вызываемого при выполнении команды dpkg-reconfigure tzdata.

Для веб-серверов о неверной настройке часового пояса может говорить ошибка 'It is not safe to rely on the system's timezone', из её содержания следует, что неправильно выбрана временная зона.


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



Ошибку или предупреждение часто можно увидеть в логах сервера или на экране при обращении к страницам сайта, полностью она может выглядеть так:

It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Yekaterinburg/Asia' for '+05 UTC' instead



Задаем системный часовой пояс в Ubuntu


Чтобы задать системное время на сервере — определить временную зону в Debian-подобных операционных системах достаточно выполнить приведенную ниже команду (выполнять ее следует от имени пользователя root):

dpkg-reconfigure tzdata

It is not safe to rely on the system's timezone settings

Часовой пояс Ubuntu

Команда вызовет псевдографический интерфейс, в котором потребуется выбрать необходимый регион и город на первом и втором шаге соответственно.

После подтверждения выполнения операции часовой пояс Ubuntu сервера настроен.



Часовой пояс в PHP


Также настройки времени задаются для РНР. Делается это в файле php.ini на сервере.


Директиве date.timezone необходимо задать в качестве значения те же регион и город, что были заданы для сервера

date.timezone = Asia/Yekaterinburg

Asia/Yekaterinburg  указывается без кавычек. Нужно выбрать подходящую временную зону.



После того как текущие РНР процессы завершатся  настройки вступят в силу и время как системное, так и РНР будет задано правильно.

Завершить РНР процессы можно перезапустив веб-сервер.

Можно этого не делать дождавшись когда процесса завершатся сами, что может занять несколько минут или десятков минут (определяется значением параметра max_execution_time в настройках).

Читайте также про то, как включить логирование ошибок PHP. Сделать это нужно чтобы увидеть какие скрипты работают неверно если изменение системного времени не дало результата.

Сказать спасибо