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

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

Раньше, мои сайты были размещены на серверах трех разных провайдеров, я решил отказаться от одного из них. Как раз заканчивается период его оплаты, а на оставшихся двух еще есть достаточно места.

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

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

В своей статье «Что такое сайт?» я рассказывал о трех компонентах каждого интернет ресурса. При переносе мы должны поработать с каждым из них.

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

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

В-третьих , потребуется перенести все данные (файлы, базы данных) со старого хостинга на новый.

Это вкратце, теперь давайте рассмотрим весь процесс в подробностях. Максимум, для переноса потребуется 8 шагов. Я буду описывать процесс исходя из предположения, что у вас уже есть новый хостинг, если у вас его еще нет, то сначала выберите подходящий и зарегистрируйте в нем аккаунт, порекомендовать могу один из этих (ссылки партнерские): Timeweb или Sprinthost .

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

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

Перенос файлов, пожалуй, самое простое действие, из всех, что нужно сделать. С помощью FTP клиента или встроенного файлового менеджера нужно скачать все файлы, принадлежащие сайту, со старого хостинга на компьютер, а потом, точно также, закинуть их на новый сервер в папку public_html, отвечающую за работу переносимого домена.

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

Скачиваем файлы на компьютер:

Если ваш ресурс очень простой (выполнен на простом HTML) и не имеет баз данных, то пункты с 3 по 6 можно пропустить. Но любой сайт, использующий систему управления контентом (CMS), требует для своей работы базу данных MySQL, ее тоже необходимо перенести.

Для этого в админке вашего старого хостинга находите раздел «Управление базами данных MySQL». Заходите в панель администратора phpMyAdmin. Выбираете нужную базу и выбираете вкладку «Экспорт».

В меню экспорта базы данных установите для скачивания архивный формат ZIP или GZIP. Нажимаете кнопку “ОК” и указываете место на вашем компьютере, куда будет сохранен файл.

Точно также, как и в предыдущем пункте, открываете на другом хостинге раздел «Управление базами данных» (Базы MySQL), только вместо выбора нужной базы – выбираете пункт создать новую базу данных.

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

Нажимаете кнопку создать, и у вас появится новая база данных. Если вы перейдете внутрь этой базы, то там не будет ни одной таблицы, пока она пуста.

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

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

После того, как мы перенесли файлы и базу данных, нам нужно связать их между собой. Для этого найдите конфигурационный файл вашей CMS. В WordPress он называется wp-config.php, находится он в корневой директории сайта (прямо в public_html).

Открываете этот файл для редактирования и заменяете следующие строки:

/** Имя базы данных для WordPress */

/** Пароль к базе данных MySQL */

Вместо XXX вы прописываете значения, которые указывали при создании базы данных. Это нужно, чтобы файлы вашей CMS подключились к базе и могли обмениваться с ней информацией.

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

Проверяем работу сайта на новом хостинге:

– некоторые хостинги для каждого сайта создают технический домен. Обычно это домен 4 уровня, похожий на moysait.ru.hosting.ru – по этому адресу ваши страницы работают, даже если не работает ваш основной домен. Проверьте, если там все функционирует нормально, значит, переходите к следующему пункту.

– другой вариант подойдет в том случае, если технический адрес на вашем хостинге не предоставляется, но у вас есть на нем другие, работающие домены. Вы можете создать для одного из них поддомен типа test.sait.ru . Подключить этот поддомен к папке public_html вашего нового сайта и проверить как и в предыдущем случае.

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

Итак, у вас все готово, файлы и база работают нормально на новом сервере. Осталось только перенаправить доменное имя на другой хостинг. Для этого нужно изменить NS записи домена. Сейчас в них прописаны NS сервера старого хостинга, поэтому вся информация берется с них. Нам же требуется их переписать.

Заходим в ваш аккаунт у регистратора доменных имен, если вы регистрировали домен напрямую у регистратора. Находите раздел «управление DNS» и делаете запрос на их замену. Новые значения вам нужно найти либо на сайте нового провайдера, либо узнать их через техническую поддержку.

Выглядят эти записи примерно вот так (это для моих хостингов):

ns1.timeweb.ru
ns2.timeweb.ru
ns3.timeweb.org
ns4.timeweb.org

У любого другого хостера DNS записи свои.

В том случае, если ваш домен регистрировался через хостинг компанию – обратитесь для смены DNS в ее доменную службу или техподдержку.

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

Недавно написал я статью про конец света, и вскоре с данным сайтом стало твориться что-то неладное. Два дня подряд он по несколько часов или жутко тормозил, или просто был недоступен.

Такое бывало и ранее, но переносить его на другой хостинг мне не хотелось, т.к. очень много уже «залито» разных важных файлов, создано несколько почтовых ящиков и поддоменов. А делегировать перенос сайта кому-либо мне не хотелось из-за психологических предрассудков

В общем, заниматься этим не хотел, но за последние несколько дней из-за проблем с хостингом заметно упал трафик с поисковиков, так что я решил, что пора. В разное время приходилось уже «переезжать», но сейчас получилось как-то всё долго и немного проблемно — до сих пор техническая служба разбирается с почтовыми ящиками (они не шлют письма).

В чём вообще были проблемы со старым хостингом? Да на самом деле, никаких, кроме того, что сайты постоянно DDoS’или (особым образом атаковали) и те ресурсы, на которых не была направлена атака, тем не менее, страдали от неё — тормозили или вырубались вовсе. А также бывали периодические проблемы с маршрутизаторами.

Старого хостера для данного сайта я даже рекомендовал в статье «почему спам — плохо?«. При совсем небольшой цене, на нём можно:

  • разместить неограниченное число сайтов (доменов)
  • с неограниченным числом баз данных,
  • неограниченным числом почтовых ящиков
  • и неограниченным трафиком.

Почти всё не ограничено, кроме свободного места — 1 Гб. Но это очень много для статейных сайтов (а для крупных файлов всё равно лучше использовать облачные хранилища).

Ещё там есть возможность недорого купить домены и компетентная тех.поддержка. Да и сервер, на котором располагались мои сайты имеет 16 Гб ОЗУ, так что всё там быстро и удобно.

Но вся проблема в том, что этот хостер размещает ресурсы на серверах в Hetzner (крупнейшая европейская хостинговая компания с огромным дата-центром), и то ли Hetzner предоставил плохое оборудование, то ли что-то ещё, но сайт иногда по три раза в день бывал недоступен на 3-10 минут. Ну и постоянные DDoS-атаки.

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

Сначала решил «податься» к уважаемому мной хостингу Timeweb.ru (я и сейчас всем его рекомендую), но лично мне хотелось, чтоб этот мой проект находился бы за пределами РФ. А timeweb размещает сервера в Санкт-Петербурге.. Если вам всё равно, где «географически» находятся ваши сайты, то смело пользуйтесь timeweb — мощности у них хорошие, да и пинг сайта будет, естественно, меньше.

Но я подумал «опробовать» компанию Fornex.com, давно к ним присматривался (компания — в Испании, сервера — в Германии, сайт — на русском). Причём, для быстроты дела, решил взять обычный виртуальный хостинг (пока на месяц, но, как оказалось, при заказе на месяц — дают два ). И пока это самый быстрый хостинг, который мне доводилось пробовать. Подробный отзыв про Fornex.com как-нибудь ещё напишу, пусть пока разберутся с почтовыми ящиками (up: разобрались как статью дописал; очень качественно :)) .

В общем, процесс переезда я подробно «отскриншотил» (для истории), так что в данной статье расскажу стандартный алгоритм переноса сайта с одного на другой хостинг в картинках.

Нужно отметить, что я напишу именно про хостинг PHP MySQL (а не IIS, Java и т.п) — т.к. это самый распространённый вариант.

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

  1. переносим файлы сайта со старого хостинга на новый;
  2. также переносим БД;
  3. меняем DNS для связки доменного имени с новым сервером.

Теперь расскажу обо всём по порядку.

Делать это предлагаю не посредством FTP, а через веб-интерфейс Панели управления, потому что большое количество файлов по FTP передаётся очень долго. Мне повезло — у обоих хостеров используется панель ISPmanager одной версии. Но если в вашем случае они отличаются — сути это не меняет.

Сначала надо скопировать всю папку с сайтом к себе на компьютер. Как правило, папка автоматически архивируется в .tgz формат и сразу скачивается. Показываю на примере ISPmanager, но в других ПУ всё аналогично:

Выделяем папку с файлами сайта…

Далее можно сразу закачать эти файлы на новый хостинг. Но лучше так не делать — у некоторых хостеров к названию БД и имени пользователя БД добавляется специальный префикс, поэтому необходимо в скачанной ранее папке с файлами сайта найти конфигурационный файл и изменить в нём БД/имя пользователя БД. А для этого надо создать новую БД, чтобы узнать этот префикс (об этом — далее).

Чтобы затем опять не возвращаться в ПУ старого хостинга, лучше сразу скачать к себе на компьютер БД. Сделать это можно обычным способом — через phpMyAdmin, путём экспорта её в файл:

Экспорт старой базы данных в файл

— щёлкаем вкладку «Экспорт» и жмём «OK» в правом нижем углу. Вся ваша БД теперь «соберётся» в обычный текстовый файл с расширением .sql. Этот файл может оказаться неожиданно большим..

А можно (если позволяет ПУ) просто зайти в соответствующий раздел панели и сразу скачать её на компьютер:

Скачиваем БД через ISPmanager

Больше в данную ПУ возвращаться не потребуется.

Создаём новую БД — прописываем её название, имя пользователя и пароль:

Переходим к созданию БД на новом хостинге…

Теперь, создав БД, можно внести её данные в конфиг.файл. Если сайт ваш создан на WordPress, то этот файл называется wp-config.php и лежит в корневой директории — т.е. его можно найти в архиве, который мы скачали ранее:

Правка config-файла в WordPress

Так что разархивируем скачанное, правим файл и сохраняем изменения. И теперь вновь создаём архив из всех файлов сайта. В Windows проще всего сделать .zip-архив — для этого выделяем все файлы в папке (CTRL+A) и щёлкаем правой кнопкой мышки по любому из них:

Как будет назван архив — не важно. Но не стоит прямо сейчас закидывать его на другой хостинг. Дело в том, что когда в ПУ будет создан новый домен, то он автоматически создаст папку с новым доменным именем — вот в неё потом и закинем файлы этого архива.

Теперь можно забыть о старом хостинге и остаться в ПУ нового.

Сперва заходим в phpMyAdmin (в созданную БД) и делаем импорт той другой БД, которую мы сохранили на компьютер:

Импорт базы данных в phpMyAdmin

— выбираем файл со старой БД и жмём «OK» (справа внизу). Импорт большой БД может затянуться..

Всё, с БД покончено. Теперь осталось создать домен в ПУ:

Создаём новый домен в ISPmanager

Здесь всё просто, в разных ПУ выглядит по-разному. После создания домена появится папка в корневой директории нашего хостинг-аккаунта, имя этой папки = домен переносимого сайта. В неё-то и нужно закачать архив с файлами, который мы делали ранее .

Для этого в файловом менеджере находим папку с именем домена, открываем и закачиваем в неё архив — он у меня назвался readme.zip, но это не важно:

Закачиваем архив в ISPmanager

После успешной закачки надо разархивировать находящиеся в нём файлы:

Распаковываем архив в ISPmanager

После распаковки — архив удаляем (чтоб не мешал).

На данном этапе перенос сайта на другой хостинг почти закончен:

  • файлы лежат там, где надо
  • то же самое с БД

Теперь нужно «связать» новый сервер с нашим доменным именем.

Чтобы указать новые DNS (их должен был сообщить хостер), надо перейти в панель управления доменного регистратора (большую часть всех доменов я держу на 2domains.ru) и указать там не менее 2-х DNS от хостера:

Меняем DNS домена на 2domains.ru (он недавно сменил внешний вид)

В общем-то и всё, перенос завершён, остаётся подождать, пока произойдёт эта «связка».

У некоторых хостеров ещё требуется добавить домен в аккаунт хостинга, в Fornex.com то же самое:

Добавляем домен в аккаунт на хостинге

Вот теперь точно всё. Хотя нет…

Желательно ещё раз заглянуть в папку с файлами нашего сайта и поискать, нет ли там файла index.html. Если ваш сайт сделан на PHP, то должен быть index.php (скорей всего). Поэтому удалите тот файл (.html), иначе, даже после «связывания» нового сервера с доменным именем, можно будет увидеть т.н. «заглушку» хостера:

Ну вот, с помощью таких простых и нудных действий мы перенесли сайт с одного хостинга на другой. Логично, что часто делать эту процедуру не захочется. Поэтому желательно сразу выбрать «добротного» хостера (иногда может понадобиться абузоустойчивый хостинг) и не отвлекаться на подобные вещи.