Хорошей практикой считается выбирать хостер-провайдера надолго, но иногда приходится переносить сайт на другую площадку. Процесс переезда на новый хостинг может откладываться по причине страха, что возникнут простои, а следовательно — потери средств. В этой статье разберёмся как переехать на другой хостинг без последствий для вашего 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 сервера нового хостинга. Эта информация высылается в письме при регистрации услуга на хостинге, либо уточните у техподдержки. Посмотрите пример на скриншоте:
Сохраните файл «hosts» и откройте в браузере вкладку в режиме «Инкогнито» с помощью комбинации клавиш «Ctrl+Shift+N». Зайдите на свой сайт и удостоверьтесь, что он открылся с нового сервера. Для этого:
- Откройте консоль разработчика (кнопка «F12» в Google Chrome)
- Перейдите на вкладку «Network» или «Сеть»
- Обновите страницу и прокрутите содержимое окошка «Network» вверх
- Кликните на любой ресурс сайта и посмотрите на 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-сертификат.