22 марта 2022
1046

Необходимо обновить ядро Битрикс на сайте.

Как сделать это безопасно, так, чтобы сайт не упал и не было ошибок?

Есть ли такие старые версии, с которых нельзя обновляться?


Практика показывает, что Битрикс очень хорошо обновляется даже с очень старых версий до последних. Например, успешно было произведено обновление с 11 до 19 Битрикса.

Однако все же бывают проблемы:

  1. При переходе между 18-19-20 версиями могут возникнуть проблемы с кодировками, которые полностью роняют работу сайта и требуется ручное восстановление.
  2. На сайте могут быть странные программистские решения, которые либо мешают обновлению, либо не работают после него.

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

Типовое обновление Битрикс с решением известных ошибок

0. Убедиться в наличии нужной версии PHP

Минимальная версия PHP для обновления на момент написания - 7.4.

Если PHP более старый, то сначала нужно протестировать работу сайта на более новой версии PHP, после чего сменить версию PHP на сервере или переехать на новый сервер. Тестирование работы сайта на более новой версии PHP обязательно, т. к. были случаи, когда на более новой версии PHP сайт переставал работать.

1. Исключить изменения на сайте в процессе обновления

  1. Остановить cron.
  2. Поставить заглушку на сайт.

2. Создать резервную копию

  1. Создать резервную копию файлов. Можно исключить из копии кеш, resize_cache и bitrix/backup. Остальное, в том числе upload/, нужно забэкапить. Если на сервере не хватает места - забэкапить на какой-нибудь другой сервер.
  2. Создать резервную копию БД.

3. Исправить ошибки из проверки системы

  1. Произвести проверку системы.
  2. Нас интересуют только следующие ошибки:
    1. open_basedir, mbstring, прочие настройки PHP.
    2. Ошибки таблиц структуры БД.
    3. Другие ошибки можно игнорировать.
  3. Если есть ошибки open_basedir - исправляем конфиг php.
  4. Если есть ошибки БД - применяем автоматическое исправление.
  5. Если исправление сработало - проверяем работу сайта. Если что-то сломалось, или если исправление не сработало изначально - переходим к блоку "Откат действий в случае неудачи" (достаточно будет восстановить только БД, файлы на этом этапе не меняются).

4. Произвести обновление

  1. Включаем debug -> true в .settings.php
  2. Запускаем обновление ядра.
  3. Если в процессе обновления появилось сообщение об ошибке, то возможно, это "Illegal mix of collations" 
  4. При появлении других ошибок решения пока нет - производим "Откат действий в случае неудачи".
  5. Если ошибок нет - обновление произведено.
  6. Устанавливаем debug -> false в .settings.php.
  7. После обновления наверху могут появляться зеленые полосочки с предложениями что-то сделать в админке. Нужно сделать то, что там сказано.

5. Проверка работы сайта

  1. Проверяем работоспособность сайта (ходим по разным страницам, пробуем что-нибудь купить в магазине)

6. Возобновление работы сайта

  1. Снять заглушку.
  2. Включить обратно cron.

Откат действий в случае неудачи

Если в процессе обновления что-то пойдет не так - то это уже не типовой случай. В этом случае:

  1. Производим восстановление сайта из резервной копии
  2. Выполняем шаг "Возобновление работы сайта"
  3. Констатируем, что обновление завершилось неудачно.


Позвоните нам!
Личный кабинет
Вам будет доступна история заказов, управление рассылками, свои цены и скидки для постоянных клиентов и прочее.
Ваш логин
Ваш пароль
Работаем для вас с 9:30 до 18:30
Ждем писем!
г. Санкт-Петербург, Краснопутиловская ул., 69