Время на БД и веб сервере отличается на 3600 секунд, тест Битрикс

Достаточно часто, при проверке параметров системы, в Битрикс, можно увидеть одну из ошибок: Время на БД и на сервере- Время отличается на 3600 секунд (цифра может быть разной, но чаще всего именно эта). Ошибка возникает, как правило, при установке веб окружения битрикс на VPS/VDS. Все из-за неправильных настроек временной зоны.

Провести тест, можно из административной панели битрикс, находится по пути: Администрирование-> Настройки-> Инструменты-> Проверка системы. 

Так же, данную ошибку можно увидеть в модуле обмена  с сайтом на стороне 1С. При попытке обмена вам может выдать ошибку "Авторизация не пройдена"- даже если уверены, что правильно внесли адрес сайта, логин пользователя с правом обмена и его пароль, а проверка подключения все равно не проходит- скорее всего у вас именно эта ошибка времени на БД и на веб сервере.

Есть два способа решения ошибки

Не очень правильный: Открыть на редактирование файл /bitrix/php_interface/after_connect_d7.php и внести в него строчку.

$connection->queryExecute("SET LOCAL time_zone='".date('P')."'");

После этого, чаще всего, ошибка исчезает и даже 1С проходит проверку авторизации. Но редко, бывает, что не срабатывает для 1С (хотя тест на стороне сайта покажет что все нормально). Есть правильный способ

Подключаемся к серверу по SFTP/FTP протоколу, открываем файл по пути /etc/php.ini (да, именно его, а не /etc/php.d/bitrixenv.ini). И вносим строчку

timezone =  Europe/Moscow

Перезагружаем Apache командой

service httpd restart

Все, после этого и ошибка пропадет и 1С сконнектится с сайтом.

Дополнено: Смена часового пояса на уровне системы в CentOS

Предыдуший способ менят часовой пояс на уровне php. Можно сделать совсем правильно и гарантировано работоспособно: сменить часовой пояс в самой системе CentOS

Открываем терминал и вводим команды

  • mv /etc/localtime /etc/localtime-old - бекапим файл часовых зон
  • ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime - делаем ссылку на часовую зону
  • date - убеждаемся что время правильное, выдаст текущую дату и время

PS: Само собой, если у вас 1С и сервер с сайтом работают в другом часовом поясе- выставляйте свой вместо Europe/Moscow

Все заметки
Уважаемый читатель! В связи с участившимся спамом в комментариях, возможность писать доступна только для зарегистрированных пользователей

Зарегистрироваться Войти
Напомнить пароль

Быстрая регистрация через соц.сеть:
Александр Неви
Спасибо за уроки!
Сайт крутится локально в Docker контейнре Ubuntu - помогло сменить локальное системное время:
Код
ln -fs /usr/share/zoneinfo/Europe/Moscow /etc/localtime

© 2011—2017 Частный вебмастер: ИП Базаров, ОГРНИП: 315784700173692. Работает на 1С-Битрикс.

Копирование материалов запрещено: "ГК РФ, часть 4, раздел VII: Права на результаты интеллектуальной деятельности".

Информация размещенная на сайте, не является публичной офертой.
Политика конфеденциальности