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

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

На чем зарабатывают хостинг-провайдеры?  Они зарабатывают именно на продлении хостинга. Посмотрите внимательно их предложения - почти везде на первый год скидка 20%, домены бесплатно и еще куча бонусов. Зато на второй год - будьте любезны, расплатитесь . Большинство платит, потому что думают: "Переносить куда-то сайт с базой данных, это так сложно, вдруг что-то не заработает и т.п." проще заплатить и жить спокойно. Но мы с вами не боимся трудностей, ведь так? Плюс мы с вами сэкономим на продлении, а это лишний домен как минимум.

 
Итак, инструкция по переносу хостинга сайта написанного на PHP и MySQL:

1. Регистрация другого хостинга
Зарегистрируйте учетную запись у нового хостинг-провадйреа, узнайте ДНС-сервера, ip-адрес и настройки самого хостинга. Настройки либо пишутся непосредственно на контрольной панели, либо их можно узнать функцией php - phpinfo(); Особое внимание обратите на абсолютный путь к сайту (Document Root), на функцию fopen (нужна для работы сапы), на наличие поддержки .htaccess и mod_rewrite


2. Скачка файлов сделанных тех.поддержкой
Зачем работать самому, если у хостинг-провайдера есть служба тех. поддержки? Поэтому для начала просим тех. поддержку поработать за нас. На текущем хостинге создайте тикет (заявку в тех.поддержку) с просьбой сделать дамп базы и копии файлов. Рекомендую тикет создавать через встроенную тикет-систему или, если таковой нет, либо там геморная процедура регистрации - напишите с e-mail-а на который зарегистрирован аккаунт. В заявке обязательно указывайте свой логин и адрес сайта (сайтов на аккаунте может быть много).

Просьба должна выглядеть примерно так:
Здравствуйте, я ваш клиент, мой логин в системе user. Просьба сделать архивную копию всех файлов сайта http://www.pageranker.ru/ и дамп базы данных mydatabase и выложить их для скачки на ftp.

3. Закачка файлов на новый хостинг
Через пару часов проверьте, сделали ли дамп. Если нет - пишем просьбу повторно и с парочкой восклицательных знаков в конце. Обычно суппорт суетиться и все делает. Скачиваете файлы и дамп. С файлами обычно проблем не возникает, а вот с дампом базы данных... но об этом ниже. Для начала открываем дамп текстовым редактором и смотрим - как отображаются русские символы. Если по русски - отлично. Тогда, заливаем дамп и архив на другой хостинг и просим уже ихний суппорт распаковать файлы в папку www и извлечь дамп (предварительно можете создать пустую базу и пользователя). Настраиваем подключение к базе.

4. Проверка сайта
Чтобы просмотреть сайт в браузере с нового хостинга, нужно обратиться напрямую по ip-адресу в адресной строке браузера. Если у вас общий ip-адрес то пишем в файле:

C:WINDOWS/system32/drivers/etc/hosts
строчки
127.0.0.1

pageranker.ru
127.0.0.1
http://www.pageranker.ru/

где вместо 127.0.0.1 - ip сайта на новом хостинге, а
news.vghost.ru - соответственно адрес сайта.
Проверить с какого ip пингуется сайт можно командой: ping www.pageranker.ru

Настраиваем сайт, если все гладко, меняем ДНС и сайт перенесен.
При таком раскладе мы почти ничего не делали, а за нас работала служба поддержки!

5. Осложнения!

Если база данных перенеслась криво.

Часто при переносе хостинга глючит именно база данных (так, например, было с этим сайтом) Причина чаще всего в неправильной кодировке. Очень часто часть таблиц создается в кодировке win-cp1251, а часть в utf-8 и так далее. При дампе чаще всего указывается одна из кодировок и получается каша.

Самый надежный способ, писать повторно в суппорт с просьбой сделать нормальный дамп, но бывают неадекватные саппорты, поэтому иногда приходиться крутиться самому:

Способ номер один:
Если база небольшая можно сделать дамп самому в текстовый файл (phpMyAdmin -> база данных -> экспорт), в таком случае в phpmyadmin в окне будет просто текст с русскими символами, скопируйте этот текст в файл, сохраните его и потом извлеките в новую базу.

Способ номер два:
Для того чтобы избежать проблем с отображением символов дамп нужно делать дамп с ключом --compatible=mysql40 - при таком раскладе делается нормальный дамп без указания кодировок и извлекается он без проблем. Так что если хостер сделал вам корявый дамп, попросите сделать с ключом --compatible=mysql40 получится нормальная база.

Полностью команда:
mysqldump -u user -p -f --compatible=mysql40 --quote-names --add-drop-table database > database.sql

Также можно делать дамп указывая кодировки, командой:
mysqldump -u user -p --default-character-set=cp1251 database > database.sql

Если кодировка utf8, пишем соответственно --default-character-set=utf8

Возможно при дампе понадобиться указать еще какие-то настройки, нужно уточнить их у суппорта хостера. Вместо user нужно ввести имя пользователя mysql-базы

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

Советы:

Совет 1: используйте dumper! Это специальный скрипт для создания и извлечения дампов баз данных, очень помогает при создании больших дампов и их извлечении. Имеет отличный интерфейс, после него я уже давно не пользуюсь phpMyAdmin для создания-извлечения дампов .

Совет 2: во многих CMS в конфигурационных файлах есть строчки типа 'dbcharset' => 'cp1251', не стоит ими пренебрегать! Обязательно пишите правильную кодировку вашей базы данных, иначе потом могут быть серьезные проблемы. Также будьте внимательны при создании базы данных, если создаёте в кодировке uft8, так и все надо писать в utf8, если в cp1251, так и надо писать в cp1251

Работа с Sape при переносе хостинга и/или покупке сайта

1.Перенос хостинга

Если вы продавали ссылки с сайта через sape, то после переноса хостинга удалите файл links.db, новый файл создастся автоматически и ссылки будут отображаться нормально.

2.Покупка сайта зарабатывающего на Sape
Если вы купили сайт, где уже висела сапа, то нужно перекинуть сайт с аккаунта продавца на ваш аккаунт, для этого нужно:

1) Удалить старый код с сайта
2) Установить код нового аккаунта на сайт
3) На одной из страниц сайта разместить текстовое подтверждение, что это ваш сайт и указать логин в системе sape.
4) Написать в Обратную Связь в раздел "другое", прислав ссылку на страницу с подтверждением
После этого сайт будет перенесен на указанный аккаунт, если ссылки не отображаются, удаляем файл links.db как описано в пункте 1.