Перенос сата на Бітрік
Как перенести сайт на Битриксе на другой хостинг – один из популярных вопросов специалистам техподдержки и поиску 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. После этого следуйте указанию мастера восстановления, выберите «Скачать резервную копию с дальнего сайта» и вставьте ссылку, полученную ранее.
Второй способ. Перенос с помощью rsync и mysqldump
Перенос автоматическими средствами, что мы рассмотрели выше, – это алгоритм, на который почти невозможно повлиять. И если по каким-то причинам в ходе его работы не происходит создание или восстановление данных, то на помощь приходит второй способ.
Он подойдет тем, кто имеет доступ к 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. Кроме того, нужно убедиться, что установлены все обновления Битрикс. Для этого надо сначала обновить php/mysql (даже на старом хостинге), а затем установить обновления Битрикс.
ПРОБЛЕМЫ С РАБОТОЙ СТАРЫХ ПРАВИЛ/РЕДИРЕКТОВ .HTACCESS
После переноса файл .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,
),
ОШИБКИ «MYSQL CONNECT ERROR» И «DB QUERY ERROR. PLEASE TRY LATER»
В первом случае следует проверить правильность доступов к БД в файле bitrix/php_interface/dbconn.php и bitrix/.settings.php, а для решения второй ошибки в файле bitrix/php_interface/dbconn.php выставить значение $DBDebug = true, чтобы увидеть детально возникшую ошибку. Другие проблемы и варианты их решения описаны на сайте Битрикс.
Last updated