Перенос сата на Бітрік
Last updated
Last updated
Как перенести сайт на Битриксе на другой хостинг – один из популярных вопросов специалистам техподдержки и поиску Google.
Мы рассмотрим два способа «переезда» сайта на Битрикс и Битрикс24 с одного хостинга на другой. Их в равной степени можно применять и для миграций с виртуального хостинга на VPS или виртуальные машины, а также к переносу Битрикса с сервера на сервер.
Первый способ – это штатный вариант переноса, предусмотренный как в «1С-Битрикс: Управление сайтом», так и в коробочной версии «Битрикс24».
Алгоритм переноса простой: бэкап создается на исходном хостинге и с помощью специальной ссылки разворачивается на новом. При этом на новом хостинге в корневой директории веб-сервера должен быть залит скрипт восстановления restore.php.
Важно заранее выделить необходимое время для переноса. Сколько времени потребуется — зависит от конкретного проекта. Небольшие сайты в несколько гигабайт потребуют 10-20 минут, а перенос солидных площадок в сотни гигабайт может занять несколько часов.
Во многих случаях создание резервной копии из панели администрирования Битрикс работает «из коробки», но есть несколько нюансов.
Шаг 1 (необязательный). Перед переносом рекомендуется закрыть публичную часть сайта. Либо спланировать перенос на время низкого трафика – ночью или на выходных. Закрытие позволит снизить нагрузку на сайт, поскольку процедура создания бэкапа весьма ресурсоемкая, а сами резервные копии будут содержать все актуальные данные. Однако это необязательное условие. Если вам важна бесперебойная работа сайта, этот процесс можно сделать и без закрытия публичной части. Закрыть публичную часть можно в «Главном модуле» (<site>/bitrix/admin/settings.php?lang=ru&mid=main&mid_menu=1):
Шаг 2. Начинаем создавать резервную копию. Для этого необходимо следовать пути: Настройки -> Инструменты -> Резервное копирование -> Создание резервной копии (<site>/bitrix/admin/dump.php).
Доступно два варианта размещения резервной копии:
В облаке «1С-Битрикс» - копия все равно сначала создается в папке сайта, а после этого копируется в облако и затем удаляется локально;
В папке сайта.
Важный момент: перед созданием рекомендуется убедиться, что на сервере достаточно свободного места для резервной копии. Сделать это можно в панели управления хостинга или на сервере в консоли
Шаг 3. Вкладка «Параметры» позволяет использовать гибкие настройки для создания копии:
Из архива рекомендуется исключить следующие файлы: По желанию можно исключить и папку /upload, в которой хранятся картинки и документы, если она большого объема, и перенести ее позже отдельно.
Шаг 4. После настроек необходимо нажать кнопку «Создать резервную копию» и дождаться завершения операции. Нюансы данного способа резервного копирования:
Дамп БД и ее архивация создают большую нагрузку на сервер, сайт замедлит свою работу во время резервного копирования. Если сервер слабый, то возможны ошибки 502 и 504. В таких случаях нужно использовать другой способ переноса сайта.
Если сайт большого объема (сотни Гб), то использование встроенного резервного копирования – не лучшее решение для бэкапа. Особенно это актуально, если необходимо обеспечить минимальное время простоя.
Шаг 5. После того, как резервная копия будет создана, перейдите в «Список резервных копий» и из выпадающего списка выберите «Получить ссылку для переноса». Скопируйте ее.
Шаг 1. Перед восстановлением резервной копии на другом хостинге или сервере мы рекомендуем протестировать их на соответствие с рекомендуемыми настройками для CMS Битрикс.
Сделать это можно с помощью скрипта bitrix_server_test.php (описание на сайте Битрикс). Для этого скачайте его по ссылке, положите в корневую директорию сайта на новом хостинге и запустите в браузере http://ваш_домен_или_ip/bitrix_server_test.php.
Шаг 2. После того как вы убедились в соответствии системы рекомендуемым настройкам, можно приступать к восстановлению резервной копии. Для этого скачайте файл restore.php по ссылке в корневую директорию сайта и перейдите по ссылке http://ваш_домен_или_ip/restore.php.
Шаг 3. После этого следуйте указанию мастера восстановления, выберите «Скачать резервную копию с дальнего сайта» и вставьте ссылку, полученную ранее.
Перенос автоматическими средствами, что мы рассмотрели выше, – это алгоритм, на который почти невозможно повлиять. И если по каким-то причинам в ходе его работы не происходит создание или восстановление данных, то на помощь приходит второй способ.
Он подойдет тем, кто имеет доступ к shell-консоли и обладает навыками системного администрирования. Его также логично будет использовать при больших объемах сайтов, наличии множества мелких файлов, отсутствии места на сервере или медлительности исходного хостинга.
Перенос с помощью rsync и mysqldump характеризуется:
Большим контролем и гибкими возможностями для переноса. Синхронизация файлов происходит вручную, ошибки можно попутно замечать и исправлять.
Минимальным временем простоя сайта и возможностью досинхронизировать файлы. Нет ограничений и по таймингу, когда тайм-ауты веб-серверов ограничивают соединение или выполнение переноса временными рамками.
Снижением нагрузки на сервер. Когда Битрикс делает резервные копии, он формирует многотомный архив, в котором для больших сайтов может быть больше сотни томов. При ручном переносе создается один большой архив, который легче контролировать.
Итак, приступим к переносу.
Шаг 1. Большинство CMS состоит из файлов и базы данных. С помощью утилиты rsync мы перенесем файлы, а с помощью утилиты mysqldump – перенесем базу. Начнем с переноса файлов: для этого запустите rsync для корневой директории сайта с сервера-источника на сервер-получатель.
Если подключение к получателю уже ранее производилось, нужно сначала очистить информацию про ключ с помощью команды:
ssh-keygen -R <АдресНовогоСервера>
После переноса всегда можно досинхронизировать файлы, запустив эту команду снова. Копируются только изменения.
Шаг 2. Затем сделаем дамп базы с помощью утилиты mysqldump:
И скопируем дамп через тот же rsync
Примечание Не делайте и не копируйте дамп базы.sql в корневую директорию сайта, так как к ней могут получить доступ другие пользователи.
Шаг 3. После того, перед импортом данных, необходимо создать базу на новом сервере
Параметры подключения к новой базе можно узнать тут:/root/.my.cnf
.
И далее выполните ее импорт:
Шаг 4. После этого проверьте и при необходимости измените настройки подключения к базе данных в файлах bitrix/.settings.php
и bitrix/php_interface/dbconn.php
. В заключение – проверьте работу сайта.
После восстановления следует перейти на сайт, зайти в панель администратора и выполнить проверку системы, чтобы убедится в корректности ее работы.
Необходимо следовать пути: Рабочий стол -> Настройки -> Инструменты -> Проверка системы
.
И уже после восстановления резервной копии можно выполнять изменения в DNS, чтобы переключить домен на новый сервер.
Если на исходном сайте были устаревшие версии php/mysql, а на новом – они уже актуальные, то эта проблема может возникать. Если это произойдёт, обратитесь к разработчикам сайта, приведут код к соответствию новым версиям php/mysql. Кроме того, нужно убедиться, что установлены все обновления Битрикс. Для этого надо сначала обновить php/mysql (даже на старом хостинге), а затем установить обновления Битрикс.
После переноса файл .htaccess из резервной копии сохраняется под именем .htaccess.restore, а новый файл .htaccess содержит правила по умолчанию. Можно переименовать старый файл или перенести из него необходимые правила в новый.
Для отправки почты в CMS Битрикс используется php функция mail(). Следует через phpinfo() проверить, что параметр sendmail_path указывает путь до sendmail или на его заменитель. Выявлению большинства проблем с отправкой писем помогает лог почтового сервера, по умолчанию это файл /var/log/maillog. В шаблоне BitrixVM для отправки почты уже всё настроено, и останется лишь задать имя отправителя “from” в файле /home/bitrix/.msmtprc
Если пропадает авторизация пользователя, то можно проверить хостинг/сервер на корректность работы сессий с помощью скрипта bitrix_server_test.php по ссылке.
При возникновении сложностей с импортом базы данных объемом более 1 Гб, операцию следует проводить через консоль (инструкция есть в блоге MediaGuru).
Бывают случаи, когда после переноса появляется белый экран, который сигнализирует об ошибках. Чтобы понять, чем конкретно это вызвано, следует в файле bitrix/php_interface/dbconn.php включить логирование ошибок:
'exception_handling' => array (
'value' => array (
'debug' => true,
'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE,
'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING & ~E_DEPRECATED,
'ignore_silence' => false,
'assertion_throws_exception' => true,
'assertion_error_type' => 256,
'log' => array (
'settings' => array (
'file' => 'bitrix/modules/error.log', //Файл лога, куда и будут писаться наши ошибки
'log_size' => 1000000,
),
),
),
'readonly' => false,
),
В первом случае следует проверить правильность доступов к БД в файле bitrix/php_interface/dbconn.php и bitrix/.settings.php, а для решения второй ошибки в файле bitrix/php_interface/dbconn.php выставить значение $DBDebug = true, чтобы увидеть детально возникшую ошибку. Другие проблемы и варианты их решения описаны на сайте Битрикс.
Шаг 4. После загрузки и распаковки мастер предложит восстановить базу данных. В шаблоне BitrixVM от Maxiplace все данные будут уже внесены в поля, и останется только нажать кнопку «Восстановить». В других случаях необходимо будет указать данные для подключения к локальной базе данных.
Шаг 5. После восстановления удалите локальную резервную копию и служебные скрипты. Операция выполнена!