Openvz - date: cannot set date: Operation not permitted
Если вы на впс сервере получите ошибку:
Означает что время нельзя изменить на контейнере. Если время некорректное - то его нужно поменять на главной ноде и тогда время на контейнере синхронизируется.
Заходим на хардноду и делаем следующее:
Устанавливаем время и временную зону Europe/Moscow на сервере:
Устанавливаем временную зону для php скриптов:
Бывает такое на впс, что время спешит на 1 час, и вроде бы на хардноде все верно сделано и это не помогает:
Это лечится так (на самой впс):
Когда проверяем, то должно уже все корректно работать.
Можно также проверить через браузер скриптом php, иногда php показывает время не такое, как на сервере. И так создадим файл time.php c содержимым:
Но так как время всех впс на сервере зависит от правильного времени на хардноде, то давайте сделаем так, чтобы время автоматически синхронизировалось с эталонными серверами. И так делаем (на хардноде):
Настройка сервера времени ntp
Со временем часы могут убегать или отставать, поэтому время от времени их нужно синхронизировать с эталонными. Для этого в CentOS используется демон ntpd.
Установим демон ntpd если его нет в системе:
Однократно синхронизируем время:
Если получили что-то вроде the NTP socket is in use, exiting — значит ntpd демон уже запущен. В этом случае остановим его:
Настраиваем работу ЧРВ в BIOS на время по UTC:
Этой командой мы присвоили значение времени аппаратных часов равным системному времени. Как вы помните, системные часы мы синхронизировали командами выше.
Проверим содержимое файла /etc/sysconfig/clock чтобы система после загрузки правильно выставляла местное время. Для Москвы он должен содержать следующее:
Настраиваем демон ntpd на автозагрузку при старте операционной системы:
Запускаем демон синхронизации времени:
Проверяем системное время командой:
Оно должно совпадать с реальным.
Проверим, синхронизируется ли системное время с серверами эталонного времени (ntp server) и все ли там в порядке командой ntpq -p:
Демон ntpd включает в ядре Linux режим "11 minute mode". В этом режиме каждые 11 минут синхронизируются системные и аппаратные часы. По-умолчанию он (режим "11 minute mode") выключен и включается только когда какой-то сервис попросит включить этот режим. Демон ntpd как раз его и (режим "11 minute mode") включает. Так что дополнительно синхронизировать аппаратные часы по значению системных нет необходимости.
P.S. Теперь системные и аппаратные часы вашего сервера будут автоматически синхронизироваться с эталонными серверами и всегда показывать точное время.