Перенос Битрикс сайта на другой хостинг

Далее следует небольшой чек-лист для переноса сайта на Битрикс с одного сервера на другой.

Обозначим сервер, на который мы переносим - целевой.

Сервер, на котором сейчас сайт - текущий.

Основной план

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

  • На целевом сервере создаём необходимый каталог для сайта
    Очень неплохой идеей будет пройтись по серверу скриптом bitrix_server_test.php
  • На целевом сервере создаём пользователя и базу данных для сайта
  • Пингуем сайт. Сверяем с IP текущего сервера
  • На сайте отключаем композит, CDN, сбрасываем кэш
  • На сайте отключаем настройки безопасности, связанные с IP и папкой сайта
  • На текущем сервере делаем дамп базы данных, кладём в корень сайта
  • Заворачиваем сайт на текущем сервере в архив. Маска исключения: /bitrix/cache/* /upload/resize_cache/* /upload/tmp/* /bitrix/tmp/* /bitrix/managed_cache/* /bitrix/stack_cache/*.

    Готовая схема для tar.gz (.tgz) при нахождении в корневой папке сайта:

    tar -cvzf <путь до бэкапа> ./ --exclude=./bitrix/tmp/* --exclude=./upload/tmp/* --exclude=./bitrix/*cache*/* --exclude=./upload/*cache*/* --exclude=./bitrix/backup/*

  • Переносим архив с сайтом на целевой сервер
  • Разворачиваем в каталоге для сайта (различается в зависимости от хостинга)
  • Переписываем DNS-настройки c IP текущего сервера на IP целевого, в частности это должна быть как минимум изменённая А-запись.
  • Меняем права и владельца на приемлемые сервером.

    Права для файлов: 644 (чтение и запись для владельца и чтение для остальных), права для папок: 755 (чтение, запись, запуск для владельца, чтение и запуск для остальных)

  • Проверяем настройки PHP: обязательно PHP 5.3+, short_open_tag = On
  • Меняем файлы на целевом сервере /bitrix/php_interface/dbconn.php и /bitrix/.settings.php В них необходимо подставить правильные данные по базе данных.
  • В .settings.php находим и меняем строки:

    • 'database' => 'НАЗВАНИЕБАЗЫ',
    • 'login' => 'ИМЯПОЛЬЗОВАТЕЛЯБД',
    • 'password' => 'ПАРОЛЬБД'

    В dbconn.php меняем следующие строки:

    • $DBLogin = "ИМЯПОЛЬЗОВАТЕЛЯБД";
    • $DBPassword = "ПАРОЛЬБД";
    • $DBName = "НАЗВАНИЕБАЗЫ";

  • Меняем хост вручную, чтобы подключиться напрямую по IP. Для линукс: Открываем /etc/hosts под суперпользователем, добавляем строку 123.234.321.0 ваш.домен, где 123.234.321.0 - это IP-адрес целевого сервера
  • Заходим по домену в админку
  • Включаем необходимую безопасность, изменив настройки на IP целевого сервера
  • Включаем правильную корневую папку, если необходимо, в настройках "Сайты"
  • Подключаем CDN\композит\кэш (если отключали).
  • Просматриваем файл .htaccess на наличие нерабочих функций
  • Проверяем 404 на сайте

Дополнительный план

Дополнительный план работает в том случае, если информация может измениться за то время, за которое вы переносите сайт. (терминология прежняя)

После того, как сайт отдаётся с IP целевого сервера без записи в /etc/hosts:

  • Делаем повторный дамп базы данных на сайте текущем
  • Смотрим на изменения в сайте. Чаще всего это папка upload
  • Архивируем файлы, которые были изменены с даты предыдущего бэкапа (можно воспользоваться tar --listed-incremental=file)
  • Копируем дополнительный бэкап и дамп БД на целевой сервер
  • Заливаем БД, разворачиваем дополнительный бэкап в папку с сайтом.
  • Меняем права и пользователя (по необходимости)

Комментарии (1)

  1. Виктор
    Виктор 16.06.2017 Ответить
    При переносе на Битиркс ВМ 7 и выше, не забывайте что там отсутствует mysql и есть только mysqlli. Следовательно нужно внести настройки в dbcon и .setting.php.

Оставить комментарий