Безболезненный перенос сайта на новый хостинг

То что вопрос переноса сайта с хостинга на хостинг встает перед каждым владельцем сайта рано или поздно явление

нормальное и зачастую прогнозируемое. Причины могут быть разными:

  • Не устраивает старый хостер
  • Сайт вырос с виртуального хостинга и требует VPS

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

Я, кстати, остановился сейчас на Deltahost — на данный момент устраивает во всем. Подробнее об услугах смотрите здесь deltahost.

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

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

tar czf archive.tar.gz public_html.

Теперь в архиве archive.tar.gz будут все папки и файлы нашего сайта. Преимуществом команды(программы) tar является то, что она сохраняет информацию о правах на папки и файлы. Тем самым нам не придется на новом сайте выставлять заново права. Как работает данный архиватор можно почитать в хелпе или особо дотошливым порыться в исходниках на c++, но занятие это долгое и утомительное.

Далее, нам нужно перенести данные из базы. Для этого воспользуемся родной утилиткой от mysql. Набираем в нашей строке следующее:

mysqldump --user=username --password=password --host=localhost --port=3306 database_name > file.sql

Такие параметры как имя хоста и порт необязательные, но иногда могут спонадобиться.
Итак, теперь что мы имеем: архив с файлами archive.tar.gz и дамп базы file.sql. Для экономии трафика file.sql можно сжать:

gzip -9 file.sql

Теперь наш file.sql превратился в архив file.sql.gz
Для переноса мы готовы. Заливаем эти два файла на новый хостинг. Дальнейшие действия проводим на новом хостинге.
Распаковываем архив с файлами archive.tar.gz в корень будущего сайта.

tar xvfz archive.tar.gz

Теперь наша задача развернуть базу. Для начала распаковываем файл file.sql.gz:

gzip -d file.sql.gz

Далее делаем следующее:

mysql -u имя_пользователя -pпароль

Заметьте, что здесь после -p пробел не нужен. Далее восстанавливаем все записи сайта из файла.

use имя_вашей_базы
source file.sql

Все, база развернута.
Сбольшего вроде все, да можно менять DNS для домена? Нет! Файлы, база есть, но нужно еще проверить работоспособность сайта. Сидеть и ждать пока сменятся ns-ы неверно и рисково. Поэтому открываем на своей компьютере файл: c:\Windows\System32\drivers\etc\hosts и делаем следующую запись:

122.152.244.11 domain.com

Где 122.152.244.11 — IP адрес сервера с сайтом, domain.com — доменное имя вашего сайта. теперь набрав в браузере имя вашего сайта вы попадете на новый сервер. Если все работает, то меняем DNS и ждем пока сменяться записи. Обычно проходит от 3 до 10 часов, пока сайт станет доступен всему миру по новому «месту жительства».

Безболезненный перенос сайта на новый хостинг: 7 комментариев

  1. перенести контент сайта — это дело понятное и довольно простое
    а вот если ещё и домен сменился, то тут уж во многом приходится уповать на волю ПС…

    • Не поверите, бывают и с этим проблемы. Например различные настройки php

  2. больше интересует как передать вес с точки зрения сео на новый домен

    • Об этом через пост — следующий будет ответы на вопросы читателей, что приходят на почту

  3. На некоторых хостингах, например Beget, предлагают услуги своих специалистов для переноса сайтов от других хостеров. К таким, наверное, и стоит обращаться.

  4. а на каком тарифе fastVPS сидите ? как вам вообще хостинг ? сейчас тоже собираюсь переехать на дедик NHS-1, комплектация и цена очень заманчивые

    • Ну до выделнного я еще не дорос. OVZ-4 хороший тарифный план, но если докинуть еще парочку серьезных проектов, то, возможно, придется пересмотреть

Обсуждение закрыто.