05.06.2023 Уже прочитали 6779 раз

Синхронизация времени на сервере базы данных и веб-сервере

При проверке соединения с сайтом 1С-Битрикс из 1С:Комплексная автоматизация, редакция 1.1 возникает ошибка:

Авторизация не выполнена. Не удалось установить соединение с сервером. Проверьте имя пользователя и пароль. Ответ сервера: failure. Время на сервере базы данных отличается от времени на веб-сервере больше, чем на 10 минут. Вероятно неправильно настроены временные зоны. Выполните настройку и повторите обмен.Не удалось установить соединение.

Это ошибка появляется, если имя пользователя и пароль верные, а временя на сервере базы данных - нет. Для настройки времени необходимо сделать следующее:

1. Определим свой часовой пояс. Сделать это можно, например, здесь: http://php.net/manual/en/timezones.php

В моем случае это "Asia/Novosibirsk".

2. Устанавливаем часовой пояс для PHP. Для этого нужно отредактировать файл /bitrix/php_interface/dbconn.php и внести в него следующее:

date_default_timezone_set("Asia/Novosibirsk");

3. Устанавливаем часовой пояс для MySQL в файле /bitrix/php_interface/after_connect.php:

$DB->Query("SET LOCAL time_zone='".date('P')."'");	
В файле /bitrix/php_interface/after_connect_d7.php:
$connection->queryExecute('SET LOCAL time_zone="'.date('P').'"');

Часовой пояс будем брать из настроек PHP. Иногда система может не содержать информацию об отмене перехода на зимнее время в РФ. В это случае можно использовать прямое указание сдвига относительно GMT, например, для Москвы будет:

date_default_timezone_set("Etc/GMT-4");
$DB->Query("SET LOCAL time_zone='Etc/GMT-4'");


Обратная связь

Материал был полезен?

Оценка помогает понимать, какие материалы стоит развивать и дополнять.

Обсудить задачу

Обратиться за помощью

Опишите задачу и оставьте контакты. Я посмотрю вводные и свяжусь с вами удобным способом.

Направление *