Бесплатный экспресс-аудит сайта Безопасность, SEO, AI-поиск и 152-ФЗ — отчёт с баллами за минуту Проверить сайт
Обсудить проект

Переезд с BitrixVM 7 на 9: как это делается

Седьмая серия BitrixVM собрана на CentOS 7, у которой поддержка закончилась: обновления безопасности для системы больше не выходят. Девятая собрана на системах девятой серии. Вопрос «как обновиться» возникает регулярно, и ответ на него неприятный.

Почему нельзя обновить на месте

Переход между мажорными версиями системы такого рода штатно не выполняется: меняется всё окружение — ядро, пакетный менеджер, версии служб, способ сборки. Поэтому сценарий один: рядом поднимается новая машина девятой серии, на неё переносится сайт, затем переключается домен. Старая машина какое-то время живёт выключенной, но доступной — на случай отката.

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

Что подготовить заранее

  • Место под новую машину. Лучше с запасом: на время переезда данные существуют в двух экземплярах.
  • Лицензионный ключ продукта. Он понадобится при восстановлении, а ищут его обычно в последний момент.
  • Список того, что настроено руками. Задания планировщика, почта, сторонние службы, самописные скрипты, сертификаты. Всё это не переносится вместе с сайтом.
  • Свежая резервная копия — и проверка, что она разворачивается. Копия, которую ни разу не восстанавливали, копией не считается.
  • Окно для переключения. Для магазина — ночь буднего дня.

Порядок переезда

  1. Поднять новую машину девятой серии и создать на ней пул через меню окружения. Сайт пока не трогаем.
  2. Сверить версии. На девятке другие PHP и база данных, и это главный источник неожиданностей. Если сайт жил на PHP 7.x, разбирать поломки лучше заранее: что ломается при переходе на PHP 8.
  3. Перенести сайт. Либо штатным резервным копированием продукта с восстановлением через restore.php на новой машине, либо копированием файлов и дампа базы вручную. Первый способ проще и тянет за собой настройки, второй предсказуемее на больших проектах, где архив получается неподъёмным.
  4. Проверить кодировку базы. На старых проектах часто utf8mb3, а требуется utf8mb4. Это отдельная работа, и делать её лучше на новой машине до запуска: требования к базе и что ломается.
  5. Перенести ручные настройки. Задания планировщика, почта, сертификаты, конфигурации служб. Сертификаты Let's Encrypt проще выпустить заново после переключения домена, чем переносить.
  6. Проверить сайт по временному адресу — через файл hosts на своей машине, не переключая домен. На этом шаге находится большая часть поломок.
  7. Переключить домен и следить за журналом ошибок первые часы.
  8. Оставить старую машину на неделю. Выключенной, но не удалённой.

Что проверить после переключения

  1. Открываются ли страницы сайта и административная часть.
  2. Проверка системы в админке: версии, права, настройки PHP.
  3. Отправка почты — письма с заказов уходят тише всего и ломаются чаще всего.
  4. Задания планировщика: обмен с 1С, отправка очередей, индексация поиска.
  5. Оплата и доставка, если это магазин: тестовый заказ целиком.
  6. Сертификат и редирект на HTTPS.
  7. Загрузка файлов на диск и в сообщения, если это портал.

Частые поломки при переезде

  • Права на файлы после копирования. После переноса rsync'ом владельцем нередко оказывается не тот пользователь, и сайт либо не пишет кеш, либо получает 403 на загрузках.
  • Старый код на новом PHP. Девятая серия приносит версию PHP, которой старый код может не ждать. Разбирать это в момент переключения домена — худший вариант.
  • Кодировка и сортировка базы. Перенос дампа между разными версиями базы без правки кодировки заканчивается ошибкой на импорте или кракозябрами в данных.
  • Забытый планировщик. Сайт работает, а обмен с 1С молчит третьи сутки — потому что задания остались на старой машине.
  • Композитный кеш. После переезда его стоит очистить: иначе часть страниц отдаётся из файлов, и проверка показывает не то, что есть на самом деле.

Сколько это занимает

Для небольшого сайта без сложных интеграций — рабочий день с запасом. Для магазина с обменом, платежами и парой сторонних модулей — два-три дня, из которых половина уходит на проверку, а не на сам перенос. Если сайт жил на PHP 7.x, добавьте время на правки кода: объём предсказуем, но нулевым он не бывает.

Общий порядок переноса между серверами, не привязанный к версиям машины, у нас описан отдельно: как перенести сайт на другой сервер.

Частые вопросы

Можно ли обновить BitrixVM 7 до версии 9 без переноса сайта?

Нет. Это переход между мажорными версиями операционной системы, штатного пути для него нет. Поднимается новая машина девятой серии, на неё переносится сайт с базой, затем переключается домен. Старую машину стоит подержать выключенной ещё неделю — на случай отката.

Будет ли простой сайта при переезде?

При правильном порядке — нет. Сайт работает на старой машине, пока новая готовится и проверяется по временному адресу через файл hosts. Простой возможен только на время переключения домена, и он измеряется минутами, если всё проверено заранее.

Что чаще всего ломается после переезда?

Отправка почты, задания планировщика и права на файлы. Почта и планировщик не переносятся вместе с сайтом, их настраивают заново, а про проверку забывают: сайт открывается, значит всё хорошо. Права ломаются после копирования файлов от другого пользователя. Ещё одна частая причина — старый код на новой версии PHP.