Достаточно часто, при проверке параметров системы, в Битрикс, можно увидеть одну из ошибок: Время на БД и на сервере- Время отличается на 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 - помогло сменить локальное системное время:[TABLE][TR][TH]Код[/TH][/TR][TR][TD]ln -fs /usr/share/zoneinfo/Europe/Moscow /etc/localtime[/TD][/TR][/TABLE]