Bitrix ошибка время отличается на 10800 секунд

Когда требуется выполнить синхронизацию с внешним источником данных (например, с 1С), то 1С Битрикс может выдать следующую ошибку: «Время на сервере базы данных отличается от времени на веб-сервере больше, чем на 10 минут». Это означает, что необходимо проверить и настроить правильные временные зоны.

Разберем эту проблему детальнее. Можно выполнить простой фикс (грабли) в виде хука в файле /bitrix/php_interface/after_connect_d7.php
указать принудительно:

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

Но мы рекомендуем разобраться детально в причинах проблемы, для этого подключитесь к серверу по SSH и проверьте командой ‘date’ время в операционной системе (здесь и далее мы работаем в CentOS 7.

В консоли мы сначала забекапим временные файлы:

[root@sx ~]# mv /etc/localtime /etc/localtime-backup

потом делаем линк на нужную нам часовую зону:

[root@sx ~]# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

И далее проверяем командой ‘date’ корректность нового времени.
Вот как это выглядит в терминале:

[root@sx ~]# mv /etc/localtime /etc/localtime-backup
[root@sx ~]# date
Wed Apr  8 17:19:38 UTC 2020
[root@sx ~]# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
[root@sx ~]# date
Wed Apr  8 20:19:46 MSK 2020

Далее подключаемся в MySQL / MariaDB и проверяем тайм-зону командой:

select current_timestamp;

В консоли это выглядит так:

[root@sx ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 104506
Server version: 5.5.64-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

MariaDB [(none)]> select current_timestamp;
+---------------------+
| current_timestamp   |
+---------------------+
| 2020-04-08 20:24:41 |
+---------------------+
1 row in set (0.00 sec)

MariaDB [(none)]> 

Если в MySQL / MariaDB неверное время, то выполняем следующее по определению default_time_zone: идем в /etc/my.cnf (CentOS) или /etc/mysql/my.cnf (Ubuntu) и после:

[root@sx ~] sudo /etc/init.d/mysqld restart

Сложные случаи конфликта во времени в SysConfig

Иногда так происходит, что еще одна отсылка ко времени сервера есть в:

/etc/sysconfig/clock

Вы можете поменять тайм-зону через ‘tzselect’, а в SysConfig, например, может быть прописано: ZONE=America/New_York

Это решается достаточно просто:

[root@sx ~]# vim /etc/sysconfig/clock
ZONE="Europe/Moscow"
UTC=true
ARC=false

Временные зоны в PHP

Сейчас переходим к PHP, здесь тоже может быть нюанс, поэтому смотрим: /etc/php.ini
(из него билдится уже /etc/php.d/bitrixenv.ini) в ini-файле корректируем или добавляем:

timezone =  Europe/Moscow

После изменений в php.ini нужно рестартнуть Апач:

service httpd restart

Просмотров: 16493

Достаточно часто, при проверке параметров системы, в Битрикс, можно увидеть одну из ошибок: Время на БД и на сервере- Время отличается на 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

Мои видео на Boosty:

Boosty

Ваш баннер вместо этой рекламы: 15 000 руб/мес. Размещается во всем блоге, форуме, видеоуроках и разделе с макетами.

Проблема решена — помогла техподдержка Битрикса.

Совет был тривиален:

——

тестировании на странице ( Настройки > Инструменты > Проверка системы ) обнаруживаются ошибки:

Обязательные параметры PHP Ошибка! Значение max_input_vars должно быть не ниже 10000. Текущее значение: 1000

Параметры настройки UTF (mbstring и константа BX_UTF) Ошибка! Сайт работает в UTF кодировке, настройки mbstring:

mbstring.func_overload=0

mbstring.internal_encoding=»»

default_charset=»utf-8″

требуется:

mbstring.func_overload=2

mbstring.internal_encoding=»»

default_charset=»utf-8″

Загрузка файла больше 4Мб Ошибка! Не работает

Время на БД и веб-сервере Ошибка! Время отличается на 10800 секунд

——————-

Далее попросил админа поправить ошибки и проблема пропала.

Так что спасибо Техподдержке Битрикс.

ПыСы. Оговорюсь, что аналогичный вопрос задавался и сна Клиентском форуме Битрикса. Ответов с реальными советами — ноль.

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Pick a username
Email Address
Password

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account

Ошибка при синхронизации Битрикс: время на сервере базы данных

Когда требуется выполнить синхронизацию с внешним источником данных (например, с 1С), то 1С Битрикс может выдать следующую ошибку: «Время на сервере базы данных отличается от времени на веб-сервере больше, чем на 10 минут». Это означает, что необходимо проверить и настроить правильные временные зоны.

Разберем эту проблему детальнее. Можно выполнить простой фикс (грабли) в виде хука в файле /bitrix/php_interface/after_connect_d7.php
указать принудительно:

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

Но мы рекомендуем разобраться детально в причинах проблемы, для этого подключитесь к серверу по SSH и проверьте командой ‘date’ время в операционной системе (здесь и далее мы работаем в CentOS 7.

В консоли мы сначала забекапим временные файлы:

[root@sx ~]# mv /etc/localtime /etc/localtime-backup

потом делаем линк на нужную нам часовую зону:

[root@sx ~]# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

И далее проверяем командой ‘date’ корректность нового времени.
Вот как это выглядит в терминале:

[root@sx ~]# mv /etc/localtime /etc/localtime-backup
[root@sx ~]# date
Wed Apr  8 17:19:38 UTC 2020
[root@sx ~]# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
[root@sx ~]# date
Wed Apr  8 20:19:46 MSK 2020

Далее подключаемся в MySQL / MariaDB и проверяем тайм-зону командой:

select current_timestamp;

В консоли это выглядит так:

[root@sx ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 104506
Server version: 5.5.64-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

MariaDB [(none)]> select current_timestamp;
+---------------------+
| current_timestamp   |
+---------------------+
| 2020-04-08 20:24:41 |
+---------------------+
1 row in set (0.00 sec)

MariaDB [(none)]> 

Если в MySQL / MariaDB неверное время, то выполняем следующее по определению default_time_zone: идем в /etc/my.cnf (CentOS) или /etc/mysql/my.cnf (Ubuntu) и после:

[root@sx ~] sudo /etc/init.d/mysqld restart

Сложные случаи конфликта во времени в SysConfig

Иногда так происходит, что еще одна отсылка ко времени сервера есть в:

/etc/sysconfig/clock

Вы можете поменять тайм-зону через ‘tzselect’, а в SysConfig, например, может быть прописано: ZONE=America/New_York

Это решается достаточно просто:

[root@sx ~]# vim /etc/sysconfig/clock
ZONE="Europe/Moscow"
UTC=true
ARC=false

Временные зоны в PHP

Сейчас переходим к PHP, здесь тоже может быть нюанс, поэтому смотрим: /etc/php.ini
(из него билдится уже /etc/php.d/bitrixenv.ini) в ini-файле корректируем или добавляем:

timezone =  Europe/Moscow

После изменений в php.ini нужно рестартнуть Апач:

service httpd restart

Понравилась статья? Поделить с друзьями:
  • Bft thalia коды ошибок
  • Bethesda net сообщила об ошибке
  • Baxi ошибка розжига
  • Baxi nuvola 280fi коды ошибок
  • Baxi main four ошибка e05