О компании

Как перенести сайт вашего e-commerce проекта на новый хостинг без простоев и потери средств

Как перенести сайт вашего e-commerce проекта на новый хостинг без простоев и потери средств

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

Перенос файлов и базы данных

Переезд начинается с копирования файлов сайта и базы данных CMS. Большинство e-commerce проектов динамического типа, т.е. работают на основе одной из систем управления контентом (CMS). Например, интернет-магазины хорошо получаются на популярном движке Magento. Статические сайты не имеют базы данных.

Технически, процедура переноса файлов сильно зависит от используемого программного обеспечения на серверах. Но суть всегда одинакова:

  • Архивирование файлов сайта
  • Копирование ZIP-архива файлов на компьютер
  • Копирования архива с компьютера в папку на новом хостинге
  • Разархивирование ZIP-архива

База данных MySQL переносится с помощью инструмента «phpMyAdmin», он есть на всех хостингах и выглядит одинаково. Чтобы перенести БД в phpMyAdmin нужно:

  • Выбрать базу данных домена
  • Перейти на вкладку «Экспорт»
  • Оставить параметры по умолчанию и нажать кнопку «Вперёд»
  • Сохранить файл «.sql» на компьютере

Для загрузки БД на новом хостинге нужно создать пустую БД и проделать обратную процедуру, а точнее, перейти на вкладку «Импорт», и загрузить файл «.sql» с компьютера. Большинство хостеров идут навстречу клиентам и предлагают бесплатно перенести сайт на свой сервер. Вам нужно уточнить, предоставляет ли ваш новый хостер такую услугу и передать ему все пароли доступа.

Как изменить NS-записи безопасно

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

Решение оказывается очень простое — нужно протестировать работу сайта ДО изменения NS-записей домена.  Тестировать работоспособность на локальной копии нет смысла, т.к. мы знаем и видим, что сайт работает на старом хостинге.

Нужно только сделать так, чтобы сайт загружался с нового хостинга только на вашем компьютере. Рекомендуется выбрать надёжного сервис-провайдера, чтобы избежать процедур переноса сайта в будущем, различные варианты таких сервисов с описанием можно найти здесь. Все хостеры, из рейтинга по ссылке выше, соответствуют требованиям по безопасному переносу сайтов, описанными в этой статье. В операционной системе Windows, открываем в текстовом редакторе файл по пути:

«c:\Windows\System32\drivers\etc\hosts»

Файл называется «hosts» (без расширения). Открывать файл нужно с правами Администратора. В конец файла нужно добавить строчку вида:

Ip-адрес ваш-сайт.ру

«Ip-адрес» — это IP сервера нового хостинга. Эта информация высылается в письме при регистрации услуга на хостинге, либо уточните у техподдержки. Посмотрите пример на скриншоте:

Ip-адрес

Сохраните файл «hosts» и откройте в браузере вкладку в режиме «Инкогнито» с помощью комбинации клавиш «Ctrl+Shift+N». Зайдите на свой сайт и удостоверьтесь, что он открылся с нового сервера. Для этого:

  • Откройте консоль разработчика (кнопка «F12» в Google Chrome)
  • Перейдите на вкладку «Network» или «Сеть»
  • Обновите страницу и прокрутите содержимое окошка «Network» вверх
  • Кликните на любой ресурс сайта и посмотрите на IP-адрес в правой части

Ip-адрес

Если IP-адрес совпадает с тем, который вы внесли в файл «hosts», значит сайт уже загрузился с нового хостинга. Можно начинать тщательно тестировать весь функционал. Если айпишник по-прежнему старый, то нажмите несколько раз подряд клавиши «Ctrl+F5». Иногда приходится долго стараться, чтобы браузер забыл про кэш адресов. Но можно пойти другим путём — установите расширения DNS Flusher для сброса кэша DNS. Чтобы сработало, на странице расширения DNS Flusher нажимаем «DNS-Clear host cache».

Альтернативный переезд

После теста сайта можно менять NS-сервера у регистратора, можно быть уверенным что сайт будет работать. Но что делать, если что-то было упущено из вида или невозможно протестировать всё на локальном компьютере под управлением Windows? Такое может быть на определённых интернет-магазинах и онлайн-сервисах. В таком случае подойдёт быстрый переход со старого хостинга на новый и обратно.

Для этого нужно менять A-запись на старом хостинге, а не NS-записи у регистратора. Есть одно условие: в панели управления сайтом должна быть доступна функция редактирования зон DNS. В каждой панели она называется по-разному. Например, в cPanel это «Zone Editor», а в ISPManager — «Доменные имена — Записи».

Откройте редактор и найдите строчку с именем «ваш-домен.ру.» и типом «A (адрес Internet v4)»

Отредактируйте запись, изменив IP-адрес на IP-адрес сервера на новом хостинге (запишите старый адрес)

Измените значение «TTL» на 300, запишите старое значение

Сайт будет открываться с нового хостинга через 1-4 часа, в зависимости от предыдущего параметра «TTL». Вроде бы разницы с классическим способом переноса нет, но мы изменили «TTL», и теперь адрес будет подхватываться в течении 300 секунд. Т.е., вернуть старый IP-шник получится за 5 минут. После окончательного переноса сайта, рекомендуется вернуть «TTL» на стандартный, тот что был по умолчанию. И не забывайте, что сайт перестанет работать, если старый хостинг вас отключит. Для полноценного переезда нужно менять NS-адреса домена.

Перенос SSL-сертификата

В обоих случаях переезда существует общая проблема, а именно то, что сайт не сможет работать по протоколу HTTPS, пока вы не загрузите SSL-сертификат. В общем-то, это не проблема, если вы приобрели платный SSL-сертификат, тогда вам просто нужно добавить его в панели управления сайтом. Он будет работать на старом и новом хостинге одновременно.

Но небольшие e-commerce сайты используют бесплатный сертификат Let’s Encrypt. Проблема в том, что скрипт Let’s Encrypt не может сгенерировать новый сертификат до тех пор, пока вы полностью не перенесёте сайт, поменяв NS’ы. На время тестирования нового хостинга нужно вручную перенести существующий SSL-сертификат.

Опять же, процедура переноса зависит от панели управления на хостинге, но для примера перенесём SSL-сертификат с хостинга на cPanel на хостинг с ISP Manager.

  • В разделе «Безопасность» открываем инструмент «SSL/TLS Status»
  • Находим нужный домен и кликаем «Просмотр сертификата»
  • Нажимаем кнопку «Автозаполнение на основе сертификата»
  • Сохраняем всё содержимое окошка «Сертификат: (CRT)» в текстовый файл «cert.crt» (вместе со строчками «-----BEGIN CERTIFICATE-----» и «-----END CERTIFICATE-----»)
  • Сохраняем содержимое окошка «Закрытый ключ (KEY)» в файл «cert.key»
  • Сохраняем содержимое окошка «Пакет центра сертификации: (CABUNDLE)» в файл «cert.ca»

Можно закрывать cPanel, открываем ISP Manager.

  • Заходим «Настройки web-сервера — SSL сертификаты»
  • Нажимаем «Создать новый», тип «Существующий»
  • Имя: любое имя
  • В окошко «SSL сертификат» вставляем всё содержимое из файла «cert.crt»
  • В окошко «Ключ SSL сертификата» вставляем содержимое файла «cert.key»
  • В окошко «Цепочка SSL сертификатов» вставляем содержимое файла «cert.ca»
  • Сохраняем

Если возникли какие-то проблемы с цепочкой SSL сертификатов, то сюда можно ничего не вносить, это необязательное поле. Созданный сертификат нужно присвоить сайту. Для этого войдите в настройки WWW-домена и выберите созданный SSL-сертификат.