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

Перенос сайта на Bitrix на другой хостинг
Оглавление

Иногда возникает ситуация, при которой сайт вашего проекта нужно перенести с одного хостинга на другой. Причины для этого могут быть разные: вы нашли хостинг-провайдера, который предлагает более подходящие условия по более приемлемой цене, или вас не вполне устраивает качество услуг нынешнего, например, работа техподдержки или качество связи. Такая ситуация может быть актуальна при росте проекта, когда количество посещений становится больше, и условий хостинга, заточенного под стартовую конфигурацию вашего сайта, перестает быть достаточно. Для того, чтобы перенести сайт на Битриксе на другой хостинг грамотно, без потери данных и проблем с правами, нужно соблюсти несколько несложных условий, о которых мы и поговорим подробнее.

В этой статье мы поговорим о двух основных способах “переезда” сайта на Битриксе на другой хостинг. Оба этих способа подходят как для переноса сайта с VPS на виртуальный хостинг (и наоборот), так и для переноса с одного сервера на другой.

Проверка хостинга

Перед тем как переносить сайт на новый хостинг, нужно удостовериться, что он соответствует необходимым требованиям Битрикса. Для этого достаточно загрузить в корневой каталог документов хостинга скрипт bitrix_server_test.php и открыть его в браузере. Вам откроется информация для ознакомления с общей конфигурацией сервера, с возможностью провести сервер-тест. Он подробно покажет вам какие компоненты отвечают требованиям сайта на базе Битрикса, а какие нет. Если по результатам сервер подходит, можете смело начинать перенос.

Способ №1: Штатный перенос с помощью резервной копии

Этот вариант подойдет как для облачной версии, так и для коробки. Сам принцип очень прост, и заключается в создании бэкап версии на сервере исходного хостинга, и переноса на новый с помощью специальной ссылки. 

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

Когда вы определитесь со временем, потребуется проделать следующие шаги:

  • Шаг 1 (необязательный):

Закройте публичную часть сайта. Хотя это действие не является обязательным, но оно снизит нагрузку при переносе и сохранит актуальность данных на момент создания резервной копии. Для этого перейдите в «Главный модуль», откройте раздел «Публичная часть» и нажмите кнопку «Закрыть доступ для посетителей».

Закрытие публичной части сайта

  • Шаг 2:

Выберите где разместить копию. Для этого нужно открыть «Настройки», в левом меню выбрать подраздел «Инструменты», и найти в нем вкладку «Резервное копирование». Откроется  «Создание полной резервной копии», где можно будет выбрать один из предложенных вариантов размещения, а именно в облаке или в папке сайта.

Важно! Удостоверьтесь, что на сервере достаточно места для резервной копии. Это можно сделать в консоли сервера или через панель управления.

Создание полной резервной копии сайта

  • Шаг 3:

Настройте параметры будущей копии. В разделе «Параметры» можно настроить содержимое резервной копии, какие именно компоненты нужно будет архивировать, а какие исключить. Так, например, мы рекомендуем исключить из архива с копией следующие файлы:

  • /bitrix/backup/ 
  • /bitrix/cache/
  • /bitrix/managed_cache/

Содержимое резервной копии сайта

  • Шаг 4:

Когда все параметры настроены, нажмите на кнопку «Создать резервную копию». После этого нужно дождаться завершения процесса создания бэкапа.

  • Шаг 5:

Когда копия готова, перейдите в «Список резервных копий», найдите только что созданную копию, и щелкните на иконку выпадающего списка напротив ее названия. Там выберите опцию «Получить ссылку для переноса» и скопируйте.

Все готово! Теперь ваш сайт готов к переносу. Чтобы осуществить сам “переезд”, нужно совершить несколько несложных действий:

  • Скачать скрипт restore.php в корневую директорию сайта и перейти по ссылке http://ваш_домен_или_ip/restore.php. ,подставив домен своего сайта. 

Список резервных копий сайта

Maxiplace предоставляет уже готовый шаблон для восстановления сайта, воспользоваться которым можно перейдя по ссылке http://ваш_IP-адрес. 

  • Открыть restore.php. Чтобы загрузить сделанную ранее копию, на стартовом экране мастера восстановления выберите опцию «Скачать резервную копию с дальнего сайта», и вставьте ссылку для переноса, которую копировали ранее.
  • После того, как копия будет загружена и распакована, введите параметры подключения к вашим базам данных (сервер, имя пользователя, пароль и имя баз данных), или создайте новую.

Если вы используете шаблон BitrixVM от Maxiplace, все данные уже будут внесены, и нужно будет только нажать кнопку «Восстановить»

  • Когда восстановление системы завершилось, удалите резервную копию  помощью одноименной кнопки.

 

Приветствие перед установкой и восстановлением Bitrix

Вот и все, абсолютно ничего сложного, процесс фактически происходит автоматически. Стоит, однако, отметить некоторые нюансы такого метода. В частности, архивация баз данных вашего сайта создает большую нагрузку на сервер, поэтому в процессе резервного копирования сайт может работать очень медленно. Если мощность у сервера, на котором размещен ваш сайт, низкая, возможно возникновение в процессе ошибок, и тогда данные могут потеряться. Также проблемы могут возникнуть, если объем вашего сайта насчитывает более 100 Гб, к тому же пока такой объем будет копироваться, может быть увеличено время простоя. В обоих этих случаях лучше использовать другой метод переноса сайта, о котором мы поговорим далее.

Способ №2: Перенос с помощью rsync и mysqldump

За счет гибкости управления процессом, этот способ подойдет тем, кто имеет некоторую техническую подготовку и навыки системного администрирования, но в целом справиться можно и без них. Утилиты rsync для копирования файлов и mysqldump для баз данных, позволяют синхронизировать файлы вручную, что снижает вероятность возникновения ошибок, и дает возможность сразу исправлять возникнувшие. Они также позволяют снизить нагрузку на сервер за счет создания единого архива, вместо многотомного, который Битрикс создает автоматически.

Перенести сайт таким образом совсем несложно:

  • Чтобы перенести файлы, откройте утилиту rsync, и запустите синхронизацию с с сервера-источника на сервер-получатель. Для этого запустите команду:

[root@server1 ~]# rsync -avz корневая _директория_сайта/

root@ip_сервера_получателя:/home/bitrix/www/

  • Чтобы перенести базы данных, откройте mysqldump, и сделайте дамп (содержимое рабочей памяти) с помощью команды

[root@server1 ~]# mysqldump -u имя_пользователя -p ИМЯ_БАЗЫ > ИМЯ_БАЗЫ.sql

Затем откройте rsync, и скопируйте дамп, воспользовавшись командой

[root@server1 ~]# rsync -avz ИМЯ_БАЗЫ.sql root@ip_сервера_получателя:/home/bitrix/

  • Перед импортом данных, снова через mysqldump создайте базу данных на новом сервере с помощью команды

[root@server2 ~]# mysql -u имя_пользователя -p

mysql > create database ИМЯ_БАЗЫ;

mysql > exit;

И совершите импорт, введя в mysqldump

[root@server2 ~]# mysql -u имя_пользователя -p ИМЯ_БАЗЫ < ИМЯ_БАЗЫ.sql

Когда импорт будет завершен, откройте файлы bitrix/.settings.php и bitrix/php_interface/dbconn.php чтобы проверить настройки синхронизации, и при необходимости внести в них изменения на ваш выбор. После необходимо будет только проверить работу сайта, и убедиться, что все данные перенесены в полном объеме.

Проверка системы после переноса

Последнее, что осталось сделать, это удостовериться, что все работает правильно. Для проверки корректности работы системы нужно:

  • Открыть ваш сайт
  • Зайти в панель администратора
  • Через «Рабочий стол» перейти в «Настройки», далее раздел «Инструменты», и открыть вкладку «Проверка системы»
  • Нажать на кнопку «Начать тестирование»

 

Тестирование системы сайта

Система проведет полную проверку на наличие ошибок, и предоставит полную справку по работе сайта.

После восстановления резервной копии можно будет внести изменения в DNS сервера и перенести домен. 

Возможные ошибки 

Есть ряд проблем, с которыми пользователь может столкнуться в процессе переноса сайта на Битриксе с одного сервера на другой. Вот несколько наиболее распространенных, а также методы как их можно решить:

  • Устаревшие версии php и mysql

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

  • Проблема с .htaccess

Файл .htaccess имеет свойство сохраняться в резервной копии с приставкой .htaccess.restore, при этом только что созданный файл содержит стандартные правила по умолчанию. Чтобы избежать проблем с работой правил и редиректов, можно либо переименовать старый файл, либо перенести необходимые для корректной работы правила в новый в ручную.

  • Проблема с отправкой почты

Если при отправки почты с сервера возникают ошибки, нужно удостовериться, что параметр sendmail_path указывает верный путь до sendmail или его аналог. Чтобы выявить проблему, можно прибегнуть к логу почтового сервера, который по умолчанию имеет вид /var/log/maillog.

В шаблоне от Maxiplace все необходимые настройки для отправки почты уже созданы, все что требуется, это только задать имя отправителя в файле /home/bitrix/.msmtprc.

  • Проблемы с авторизацией

Если возникают проблемы со входом в систему, проверить хостинг на наличие ошибок можно прибегнув к помощи скрипта bitrix_server_test.php.

  • Ошибка импорта базы данных

В случае, если объем вашей базы данных превышает 1 Гб, ее импорт необходимо совершать через консоль, в обратном случае с синхронизацией данных могут возникать проблемы. Подробную инструкцию можно посмотреть здесь.

  • Белый экран

Бывает ситуация, при которой после переноса резервной копии системы возникает белый экран. Этому может быть несколько причин, для того чтобы выяснить конкретную, нужно открыть файл 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»

В случае, если система выдает ошибку «Mysql connect error», нужно проверить правильность доступа к базам данных в файлах bitrix/php_interface/dbconn.php и bitrix/.settings.php.

Если возникает ошибка «DB query error. Please try later», необходимо просмотреть ее детали, для чего в файле bitrix/php_interface/dbconn.php выставить значение $DBDebug = true

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

Заключение

Как можно заключить из статьи, перенести сайт на базе Битрикса можно несколькими путями, как автоматизированным штатным, так и с помощью утилит rsync и mysqldump, что требует чуть больше технических знаний, или обращения к IT специалисту. В случае, если оба варианта оказались для вас не вполне приемлемыми, специалисты поддержки Maxiplace всегда готовы оказать вам квалифицированную помощь по переносу вашего проекта “под ключ”.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *